C# 从数据库读数据 Select from where的问题

来源:百度知道 编辑:UC知道 时间:2024/07/05 03:27:02
string strsql = "select Counter From MainEva Where PaperID=@pID";
SqlCommand mycmd = new SqlCommand(strsql, myconn);
SqlDataReader reader = mycmd.ExecuteReader();

这样调试时会说mycmd.ExecuteReader()出现异常,如果把sql语句中的where去掉,string strsql = "select Counter From MainEva";就不会出现异常,功能也可以执行好,请问如果要加上where应该怎么写?
最后改成了
string strsql = "select Counter From MainEva Where PaperID=@pID";
SqlCommand mycmd = new SqlCommand(strsql, myconn);
mycmd.Parameters.Add("@pID", SqlDbType.VarChar,50).Value = que.pID;
SqlDataReader reader = mycmd.ExecuteReader();

然后if (reader.HasRows){}判断就对了

mycmd .Parameters.Add(new SqlParameter=@pID", SqlDbType.VarChar, 10));
selectDa.SelectCommand.Parameters=@pID"].Value = PaperID的值;
查询
reader .HasRows

paperID=@pid这里有问题
@pID,表示使用参数化语句,还要设置sqlparameter,
简单点的话直接PaperID=值, 就可以了

string strsql = "select Counter From MainEva Where PaperID=@pID";
SqlCommand mycmd = new SqlCommand(strsql, myconn);
SqlParameter pid = new SqlParameter();
pid.ParameterName = "@pID";
pid.Direction = ParameterDirection.Input;
pid.Value = 10;
mycmd.Parameters.Add(pid);
SqlDataReader reader = mycmd.ExecuteReader();

应该是这样的。

这样:
"select Counter From MainEva Where PaperID=" + pID.ToString()
把它放到外面来