zoukankan      html  css  js  c++  java
  • C# 执行存储过程

          SqlParameter[] paras = BuildParas(id, time, name);

          bool bRet = ExcuteProcedure(“数据库连接字符串”, "存储过程名", paras, "表名");

          public static SqlParameter[] BuildParas(string Id, DateTime Time, string Name)
          {
              SqlParameter[] paras = new SqlParameter[3];
              SqlParameter para1 = new SqlParameter();
              para1.Direction = ParameterDirection.Input;
              para1.ParameterName = "@pid";
              para1.SqlDbType = SqlDbType.VarChar;
              para1.Size = 32;
              para1.Value = Id;
              paras[0] = para1;

              SqlParameter para2 = new SqlParameter();
              para2.Direction = ParameterDirection.Input;
              para2.ParameterName = "@ptime";
              para2.SqlDbType = SqlDbType.DateTime;
              para2.Value = DateTime.Parse(Time);
              paras[1] = para2;

              SqlParameter para3 = new SqlParameter();
              para3.Direction = ParameterDirection.Input;
              para3.ParameterName = "@pname";
              para3.SqlDbType = SqlDbType.VarChar;
              para3.Size = 20;
              para3.Value = Name;
              paras[2] = para3;

              return paras;

          }

          public static bool ExcuteProcedure(string strDataBaseInfo, string procedureName, SqlParameter[] paras, string strTableName)
          {
              bool bRet = false;
              SqlCommand cmd = null;
              SqlConnection con = new SqlConnection(strDataBaseInfo);
              try
              {
                  con.Open();
                  cmd = new SqlCommand("select count(*) from " + strTableName + " where id='" + paras[0].Value.ToString() + "'", con);//目的是保证id唯一
                  int nExistCount = int.Parse(cmd.ExecuteScalar().ToString());//查询结果的第一行的第一列
                  if (nExistCount > 0)
                  {
                      return true;
                  }
                  cmd = null;
                  cmd = new SqlCommand(procedureName, con);
                  cmd.CommandType = CommandType.StoredProcedure;
                  cmd.Parameters.Clear();
                  if (paras != null && paras.Length > 0)
                  {
                      for (int i = 0; i < paras.Length; i++)
                      {
                          cmd.Parameters.Add(paras[i]);
                      }
                  }
                  int nCount = cmd.ExecuteNonQuery();
                  if (nCount != -1)
                  {
                      bRet = true;
                  }
              }
              catch (Exception ex)
              {
                  

              }
              finally
              {
                  if (cmd != null)
                      cmd.Parameters.Clear();
                  if (con.State == ConnectionState.Open)
                      con.Close();
              }
              return bRet;

          }

  • 相关阅读:
    欧拉定理 (证明+在求逆元上的应用)
    【转】弱校的ACM奋斗史
    SDUT 2412 (单调队列 + dp)
    做SRM感想。。。
    平面图中最小割向最短路的转化
    HDU 4533
    黑书上的DP 30题
    POJ【数论/组合/博弈论】题目列表
    HDU 4534 郑厂长系列故事——新闻净化
    SRM 571
  • 原文地址:https://www.cnblogs.com/xiaogongzhu/p/3828541.html
Copyright © 2011-2022 走看看