求助:{Fill: SelectCommand.Connection 属性尚未初始化}的问题
想测试一个存储过程,结果出现了如下错误,Fill: SelectCommand.Connection 属性尚未初始化
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.InvalidOperationException: Fill: SelectCommand.Connection 属性尚未初始化。
源错误: System.InvalidOperationException: Fill: SelectCommand.Connection 属性尚未初始化。
行 161: cmd.CommandType = CommandType.StoredProcedure;
行 162: cmd.CommandText = sql;
行 163: cmd.Parameters.AddRange(param);
行164: SqlDataAdapter da = new SqlDataAdapter(cmd);
行 165: DataTable dt = new DataTable();
代码如下:
public class DBHelper
{
private static SqlConnection conn=null;
#region 获取数据库连接Conn
public static SqlConnection Conn
{ get
{ string strConn = System.Configuration.ConfigurationManager.ConnectionStrings["sql"].ConnectionString;
if (conn == null)
{ conn = new SqlConnection(strConn);
conn.Open();
}
if (conn.State == ConnectionState.Closed)
{ conn.Open();
}
if (conn.State == ConnectionState.Broken)
{
conn.Close();
conn.Open();
}
return DBHelper.conn;
}
}
public static DataTable GetDatatableByProc(string sql, IDataParameter[] param)
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = Conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = sql;
cmd.Parameters.AddRange(param);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
}
前台:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string sql ="proc_page";
SqlParameter[] param = new SqlParameter[9];
param[0]=new SqlParameter("@tblName","jobs");
param[1]=new SqlParameter("@fldName","*");
param[2]=new SqlParameter("@pageSize",5);
param[3]=new SqlParameter("@page ",1);
param[4]=new SqlParameter("@fldSort",null);
param[5]=new SqlParameter("@Sort",0);
param[6]=new SqlParameter("@strCondition",null);
param[7]=new SqlParameter("@ID","job_id");
param[8]=new SqlParameter("@Dist",0);
DataTable dt = RockyDAL.DBHelper.GetDatatableByProc(sql, param);
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
}
请大家帮忙看怎么解决,谢谢各位 --------------------编程问答-------------------- 0分,你可真行兄弟,
个人愚见,你的存储过程数组里那些参数都是允许空的? --------------------编程问答-------------------- SqlCommand cmd = new SqlCommand();
改成
SqlCommand cmd = conn.CreateCommand()
补充:.NET技术 , ASP.NET