659441806 发表于 2018-10-20 10:43:43

用SQL存储过程生成唯一单据号

classProgram  
   {
  
       staticDictionary yz_dic = newDictionary();
  
       staticDictionary xs_dic = newDictionary();
  
       staticDictionary cg_dic = newDictionary();
  
       staticvoid GetID()
  
       {
  

  
            Console.WriteLine("begin");
  
            void BuildLsh(object obj)
  
            {
  
                //定义一个时间对象
  
                var oTime = newStopwatch();
  
                oTime.Start(); //记录开始时间
  
                using (var con = newSqlConnection("DataSource=.;Initial Catalog=testlsh;Persist Security Info=True;UserID=sa;Password=******;"))
  
                {
  
                  var cmd = newSqlCommand();
  
                  cmd.Connection = con;
  
                  cmd.CommandText = "getlsh";
  
                  cmd.CommandType =System.Data.CommandType.StoredProcedure;
  
                  var lxnum = DateTime.Now.Millisecond % 3;
  
                  var lx = "YZ";
  
                  switch (lxnum)
  
                  {
  
                        case 0:
  
                            lx = "YZ";
  
                            break;
  
                        case 1:
  
                            lx = "XS";
  
                            break;
  
                        case 2:
  
                            lx = "CG";
  
                            break;
  
                  }
  

  
                  cmd.Parameters.Add(newSqlParameter() { ParameterName ="@lx", Value = lx });
  
                  var par = newSqlParameter();
  
                  par.ParameterName = "@lsh";
  
                  par.Direction =System.Data.ParameterDirection.Output;
  
                  par.SqlDbType =System.Data.SqlDbType.VarChar;
  
                  par.Size = 30;
  
                  cmd.Parameters.Add(par);
  
                  con.Open();
  
                  cmd.ExecuteReader();
  
                  var lsh = par.Value.ToString();
  

  
                  switch (lxnum)
  
                  {
  
                        case 0:
  
                            yz_dic.Add(lsh,obj.ToString());
  
                            break;
  
                        case 1:
  
                            xs_dic.Add(lsh,obj.ToString());
  
                            break;
  
                        case 2:
  
                            cg_dic.Add(lsh,obj.ToString());
  
                            break;
  
                  }
  

  
                }
  
                oTime.Stop();   //记录结束时间
  
                              //输出运行时间。
  
                Console.WriteLine($"---{obj}---程序的运行时间:{ oTime.Elapsed.TotalMilliseconds}毫秒");
  

  
            }
  
            for (int i = 0; i < 2000; i++)
  
            {
  
                new System.Threading.Thread(BuildLsh).Start(i);
  
            }
  

  
       }
  
       publicstaticvoid Main()
  
       {
  
            GetID();
  
       }
  
}


页: [1]
查看完整版本: 用SQL存储过程生成唯一单据号