• Tracking_自定义Profile筛选(2)


    Pofile对象的XML串存入数据库

    该方法 调用了Tacking数据库的默认存储过程UpdateTrackingProfile,也可用自已的方式直接对Tacking数据库操作

     private static void 插入Profile的XML串到数据库(string XML字串, Version 版本)
            
    {
    string sql = @"Initial Catalog=Tracking;Data Source=WXWINTER\SQLEXPRESS;Integrated Security=SSPI;";
                
    //调用存储过程UpdateTrackingProfile
                SqlCommand command = new SqlCommand();

                command.CommandType 
    = CommandType.StoredProcedure; //类型是存储过程
                command.CommandText = "dbo.UpdateTrackingProfile"//操作 的存储过程
                command.Connection = new SqlConnection(sql);       //数据库连接字串
                try
                
    {
                    
    //字段---------------------------------------------
                    SqlParameter typeFullName = new SqlParameter();
                    typeFullName.ParameterName 
    = "@TypeFullName";
                    typeFullName.SqlDbType 
    = SqlDbType.NVarChar;

                    
    //值为要设置工作流类的类名 : typeof(wxdlzm1).ToString()
                    typeFullName.SqlValue = typeof(wxdlzm_wxwinter).ToString();
                    command.Parameters.Add(typeFullName);


                    
    //字段----------------------------------------------------
                    SqlParameter assemblyFullName = new SqlParameter();
                    assemblyFullName.ParameterName 
    = "@AssemblyFullName";
                    assemblyFullName.SqlDbType 
    = SqlDbType.NVarChar;

                    
    //值为要设置工作流类的全称名 : typeof(wxdlzm1).Assembly.FullName
                    assemblyFullName.SqlValue = typeof(wxdlzm_wxwinter).Assembly.FullName;
                    command.Parameters.Add(assemblyFullName);


                    
    //TrackingProfile表Version字段--------------------------------
                    SqlParameter versionId = new SqlParameter();
                    versionId.ParameterName 
    = "@Version";
                    versionId.SqlDbType 
    = SqlDbType.VarChar;

                    
    //值为要指定的片本号的字串:格式"3.0.0.7"
                    versionId.SqlValue = 版本.ToString();
                    command.Parameters.Add(versionId);


                    
    //TrackingProfile表TrackingProfileXml字段-----------------------
                    SqlParameter trackingProfile = new SqlParameter();
                    trackingProfile.ParameterName 
    = "@TrackingProfileXml";
                    trackingProfile.SqlDbType 
    = SqlDbType.NVarChar;

                    
    //值为TrackingProfile格式的XML字串
                    trackingProfile.SqlValue = XML字串;
                    command.Parameters.Add(trackingProfile);

                    
    //-----------------------------------------------------------
                    command.Connection.Open();//打开连接
                    command.ExecuteNonQuery();//执行
                    
                    Console.WriteLine();
                    Console.WriteLine(
    "已将Profile插入");
                    Console.WriteLine();

                }

                
    catch (SqlException e)
                
    {
                    Console.WriteLine();
                    Console.WriteLine(
    "插入Profile方法的Try捕获:插入数据出错了:");
                    Console.WriteLine(e.Message);
                    Console.WriteLine();

                    command.Dispose();
                    
    return;
                }

                
    finally
                
    {
                    
    if ((null != command) && (null != command.Connection) && (ConnectionState.Closed != command.Connection.State))
                    
    {
                        command.Connection.Close();
                    }

                }

                command.Dispose();
            }

    查询自定义Pofile的版本

    该方法 调用了Tacking数据库的默认存储过程GetTrackingProfile,也可用自已的方式直接对Tacking数据库操作
     private static Version 得到Profile版本()
            
    {
                
    //调用存储过程GetTrackingProfile
    string sql = @"Initial Catalog=Tracking;Data Source=WXWINTER\SQLEXPRESS;Integrated Security=SSPI;";
                TrackingProfile profile 
    = null;
                SqlDataReader SQL读取对象
    = null;
                SqlCommand command 
    = new SqlCommand();

                command.CommandType 
    = CommandType.StoredProcedure;//类型是存储过程
                command.CommandText = "dbo.GetTrackingProfile";   //操作的存储过程
                command.Connection = new SqlConnection(sql);      //数据库连接字串
               
                
    try
                
    {   
                    
    //字段
                    SqlParameter typeFullName = new SqlParameter();
                    typeFullName.ParameterName 
    = "@TypeFullName";
                    typeFullName.SqlDbType 
    = SqlDbType.NVarChar;

                    
    //值为要查询的工作流类的类名: typeof(wxdlzm1).ToString() 或typeof(wxdlzm1).FullName
                    typeFullName.SqlValue = typeof(wxdlzm_Wxwinter).FullName; //
                    command.Parameters.Add(typeFullName);

                    
                    
    //字段
                    SqlParameter assemblyFullName = new SqlParameter();
                    assemblyFullName.ParameterName 
    = "@AssemblyFullName";
                    assemblyFullName.SqlDbType 
    = SqlDbType.NVarChar;

                    
    //值为要查询工作流类的全称名: typeof(wxdlzm1).Assembly.FullName
                    assemblyFullName.SqlValue = typeof(wxdlzm_Wxwinter).Assembly.FullName;
                    command.Parameters.Add(assemblyFullName);

                    
                    
    //
                    SqlParameter versionId = new SqlParameter();
                    versionId.ParameterName 
    = "@Version";
                    versionId.SqlDbType 
    = SqlDbType.VarChar;
                    command.Parameters.Add(versionId);

                   
                    
    //
                    SqlParameter createDefault = new SqlParameter();
                    createDefault.ParameterName 
    = "@CreateDefault";
                    createDefault.SqlDbType 
    = SqlDbType.Bit;
                    createDefault.SqlValue 
    = 0;
                    command.Parameters.Add(createDefault);

                    command.Connection.Open();
                    SQL读取对象
    = command.ExecuteReader();                
                  
                    
    if (SQL读取对象.Read())
                    
    {
                        
    string profile的Xml字串= SQL读取对象[0as string;
                        
                        
    if (null != profile的Xml字串)
                        
    {
                            TrackingProfileSerializer 串行化对象
    = new TrackingProfileSerializer();
                            StringReader stringReader对象
    = null;
                            
    try
                            
    {
                                stringReader对象
    = new StringReader(profile的Xml字串);
                                profile 
    = 串行化对象.Deserialize(stringReader对象);
                            }

                            
    finally
                            
    {
                                
    if (stringReader对象!= null)
                                    stringReader对象.Close();
                            }

                        }

                    }

                }

                
    //--------以上得到从数据库中得到profile的Xml字串,并将其返串为TrackingProfile对象
                
                
    finally
                
    {
                    
    if ((SQL读取对象!= null&& (!SQL读取对象.IsClosed))
                        SQL读取对象.Close();
                    
    if ((command != null&& (command.Connection != null&& (ConnectionState.Closed != command.Connection.State))
                    
    {
                        command.Connection.Close();
                    }

                    command.Dispose();
                }


                
    //----------------------------------

                
    if (profile != null)
                
    {
                    
    return new Version(profile.Version.ToString());
                }

                
    else
                
    {//如果数据库中没有,就返回"0.0.0.0"格式,表示没有,此为自定义约定
                    return new Version("0.0.0.0");
                }

            }


  • 相关阅读:
    Dragonfly 基于 P2P 的文件和镜像分发系统
    一文搞懂 SAE 日志采集架构
    携手共建云原生生态 阿里云云原生加速器第二次集结圆满结营
    开放下载 | 飞天技术峰会云原生加速应用构建分论坛资料开放下载
    使用函数计算自定义运行时快速部署一个 SpringBoot 项目 | 文末有礼
    阿里云容器服务 ACK 产品技术动态(202207)
    阿里云 ACK One 多集群管理全面升级:多集群服务、多集群监控、两地三中心应用容灾
    掌握软件开发技术的第一性原理2
    掌握软件开发技术的第一性原理1
    library
  • 原文地址:https://www.cnblogs.com/foundation/p/514503.html
Copyright © 2020-2023  润新知