c#如何调用有参无返回值存储过程和有参有返回值存储过程,以及IDataParameter[]如何赋值(包含decimal值的转换)

 第一步先创建数据库链接方法

 1.定义访问数据库的方法

        /// <summary>
        /// 执行存储过程
        /// </summary>
        /// <param name="storedProcName">存储过程名</param>
        /// <param name="parameters">存储过程参数</param>
        /// <param name="tableName">DataSet结果中的表名</param>
        /// <returns>DataSet</returns>
        public static DataSet RunProcedure(string storedProcName, IDataParameter[] parameters, string tableName)
        {
            using (SqlConnection connection = new SqlConnection(connectionString))
            {
                DataSet dataSet = new DataSet();
                connection.Open();
                SqlDataAdapter sqlDA = new SqlDataAdapter();
                sqlDA.SelectCommand = BuildQueryCommand(connection, storedProcName, parameters);
                sqlDA.Fill(dataSet, tableName);
                connection.Close();
                return dataSet;
            }
        }

1.调用有参无返回值存储过程


IDataParameter[] dataparam = new IDataParameter[1];//定义参数,空间为1
 dataparam[0] = new SqlParameter("@hiringrequestid", 参数);//传入参数
 DataSet a = DbHelperSQL.RunProcedure("proc_selectcurrent", dataparam,"ds");

2.调用有参有返回值存储过程 

   IDataParameter[] dataparam = new IDataParameter[2];//定义参数
 dataparam[0] = new SqlParameter("@hiringrequestid", hiringrequestid);//第一个参数
  SqlParameter p = new SqlParameter("@zhi", SqlDbType.Decimal, 18);//指定存储过程的返回值
            p.Precision = 18;//指定decimal的整数位
            p.Scale = 1;//指定decimal 小数位
 dataparam[1] = p;//将p传入第二个参数中
dataparam[1].Direction = ParameterDirection.Output;//定义第二个参数为输出参数
  DataSet a = DbHelperSQL.RunProcedure("proc_Responsestate", dataparam, "ds");//访问之前创建/的方法
string return=dataparam[1].Value;//查询输出参数
发布了13 篇原创文章 · 获赞 1 · 访问量 2926

猜你喜欢

转载自blog.csdn.net/huxinyu0208/article/details/90554227