public static bool ExeCuteSql(string sqlStr, params SqlParameter[] myPara)
        {
            OpenConn();
            try
            {
                SqlCommand mycom = new SqlCommand(sqlStr, oaConn);
                mycom.Parameters.AddRange(myPara);
                mycom.ExecuteNonQuery();
                return true;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally {
            }
        }在调用中public bool a(Model.UserModel userInfo) {
            string sqlStr = "***********";
            return SqlDB.ExeCuteSql(sqlStr);
}
public bool b(Model.UserModel userInfo) {
            string sqlStr = "***********";
            return SqlDB.ExeCuteSql(sqlStr,myPara);
}这样都不会有错,感觉第一种用法会有错的.为什么能通过

解决方案 »

  1.   

    params ——表示传入的参数数量不确定,可能不传的话,就代表没有参数。
      

  2.   

    2楼说的对,PARAM参数表示变长的参数,可有可无,不固定多少个参数
      

  3.   

            /// <summary>
            /// 所有数据查询的基方法        /// </summary>
            /// <param name="sql">sql语句</param>
            /// <param name="isProc">传入true/false来标识是否存储过程</param>
            /// <param name="list">参数列表</param>
            /// <returns>数据集</returns>
            protected DataSet GetDataSet(string sql, bool isProc, params SqlParameter[] list)
            {
                string strCon = ConfigurationManager.ConnectionStrings["productConnectionString"].ConnectionString;
                SqlConnection con = new SqlConnection(strCon);
                SqlDataAdapter da = new SqlDataAdapter(sql, con);
                if (isProc)
                {
                    da.SelectCommand.CommandType = CommandType.StoredProcedure;
                }
                for (int i = 0; i < list.Length; i++)
                {
                    da.SelectCommand.Parameters.Add(list[i]);
                }
                DataSet ds = new DataSet();
                try
                {
                    da.Fill(ds);
                    return ds;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
      

  4.   

    你用了try语句,所以错误没有出来,你把try,catch去掉,应该问题就出来啦,试试看