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;

          }

  • 相关阅读:
    扫描线与悬线
    随机搜索与模拟退火
    树的直径相关
    分数规划及斜率优化
    数学-剩余系
    后缀数据结构
    AC自动机和KMP
    生命游戏和随机数之间某种不可言说的秘密
    转移了
    BZOJ 1710: [Usaco2007 Open]Cheappal 廉价回文
  • 原文地址:https://www.cnblogs.com/xiaogongzhu/p/3828541.html
Copyright © 2011-2022 走看看