代码如下:
SqlConnection con=db.CreateConnection();
con.Open();
string sqlStr="select sum(id)/@i from bbs_Topic where t_class=@i";
SqlCommand selectCmd=new SqlCommand(sqlStr,con);
selectCmd.Parameters.Add(new SqlParameter("@i",SqlDbType.Int));
selectCmd.Parameters["@i"].Value=System.Convert.ToInt16(Session["id1"]);
DataSet ds=new DataSet();
SqlDataAdapter da=new SqlDataAdapter(sqlStr,con);
da.Fill(ds);
当填充DataSet时报错:必须声明变量 '@i'。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 必须声明变量 '@i'。
SqlConnection con=db.CreateConnection();
con.Open();
string sqlStr="select sum(id)/@i from bbs_Topic where t_class=@i";
SqlCommand selectCmd=new SqlCommand(sqlStr,con);
selectCmd.Parameters.Add(new SqlParameter("@i",SqlDbType.Int));
selectCmd.Parameters["@i"].Value=System.Convert.ToInt16(Session["id1"]);
DataSet ds=new DataSet();
SqlDataAdapter da=new SqlDataAdapter(sqlStr,con);
da.Fill(ds);
当填充DataSet时报错:必须声明变量 '@i'。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.SqlClient.SqlException: 必须声明变量 '@i'。
SqlConnection con = db.CreateConnection();
con.Open();
string sqlStr="select sum(id)/@i1 from bbs_Topic where t_class=@i2";
SqlCommand selectCmd = new SqlCommand(sqlStr,con);
selectCmd.Parameters.Add(new SqlParameter("@i1",SqlDbType.Int));
selectCmd.Parameters.Add(new SqlParameter("@i2",SqlDbType.Int));
selectCmd.Parameters["@i1"].Value = System.Convert.ToInt16(Session["id1"]);
selectCmd.Parameters["@i2"].Value = System.Convert.ToInt16(Session["id1"]);
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(sqlStr,con);
da.Fill(ds);
^o^ 不支持这种处理方式, 要分开操作...
SqlConnection con = db.CreateConnection();
con.Open();
string sqlStr = "select sum(id)/@i1 from bbs_Topic where t_class=@i2";
SqlCommand selectCmd = new SqlCommand(sqlStr, con);
selectCmd.Parameters.Add(new SqlParameter("@i1", SqlDbType.Int));
selectCmd.Parameters.Add(new SqlParameter("@i2", SqlDbType.Int));
selectCmd.Parameters["@i1"].Value = System.Convert.ToInt16(Session["id1"]);
selectCmd.Parameters["@i2"].Value = System.Convert.ToInt16(Session["id1"]);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = selectCmd;
DataSet ds = new DataSet();
da.Fill(ds);
con.Close();
SqlDataAdapter da=new SqlDataAdapter(sqlStr,con);
--------------
在这里SqlDataAdapter类的两个参数为sql命令字符串和sqlconnection对象.
而LZ的参数是加在SqlCommand对象当中,在上面的代码当中,selectCmd和da对象根本没有建立起联系
所以他会提示参数未定义
----
把
SqlDataAdapter da=new SqlDataAdapter(sqlStr,con);
da.Fill(ds);
改为SqlDataAdapter da=new SqlDataAdapter(selectCmd);
da.Fill(ds); 就行了
再次感谢 簡簡單單..我想要说的是你的方法我我在没法贴子之前就试了,但是也还是不行,因为这跟数学里是一样的,X就是Y,Y就是X,呵呵,因此给你一点鼓励分