SqlDataReader dr = SelectCom.ExecuteReader();出错,SystemDataqlclient.sqlException,System.Invalid.op

//设置Conn对象的连接字符串stringConnSql=System.Configuration.ConfigurationManager.ConnectionStr... //设置Conn对象的连接字符串
string ConnSql = System.Configuration.ConfigurationManager.ConnectionStrings["TzzjwpmsDBConnString"].ConnectionString;
SqlConnection Conn = new SqlConnection(ConnSql);
Conn.Open();
string SecPwd = FormsAuthentication.HashPasswordForStoringInConfigFile(Password.Text,"MD5");
string StrinSQL = "select * form staffinfo where staff_id='" + TextboxStaff_id.Text + "'and realname='" + txtRealname.Text + "'and password='" + SecPwd + "'and staff_level='normal'";
SqlCommand SelectCom = new SqlCommand(StrinSQL, Conn);
SqlDataReader dr = SelectCom.ExecuteReader();
if (!dr.Read()) //判断输入正确否
{
Response.Write("<script language=javascript>alert('请重新正确职工编号、姓名和密码');</script>");
}
else
{
Response.Redirect("normal_staff.aspx");
}
dr.Close();
Conn.Close();
展开
 我来答
fightfs
2011-03-08 · 超过35用户采纳过TA的回答
知道答主
回答量:81
采纳率:100%
帮助的人:70.5万
展开全部
SelectCom.ExecuteReader();抛异常多数是查询语句写的有问题,在
string StrinSQL = "select * form staffinfo where staff_id='" + TextboxStaff_id.Text + "'and realname='" + txtRealname.Text + "'and password='" + SecPwd + "'and staff_level='normal'";
这句设个断点然后debug,进入这句以后然后添加watch看看StrinSQL 的值,然后到SQL server对应的表去执行看看,应该是会报错的,然后改正下直到在SQL server里面能出结果,应该就OK了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
网上冲浪玩家
2011-03-08 · TA获得超过574个赞
知道小有建树答主
回答量:535
采纳率:100%
帮助的人:342万
展开全部
你的staff_id在数据库中是什么类型?int还是varchar? int的话 staff_id='" + TextboxStaff_id.Text + "'换成 staff_id=convert(int,'" + TextboxStaff_id.Text + "'),还有就是每个and前面要有空格,不论id是什么类型,空格都要有的.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
depluin
2011-03-08 · TA获得超过3179个赞
知道大有可为答主
回答量:3378
采纳率:75%
帮助的人:2478万
展开全部
检查连接字符串,检查SQL语句是否能正确执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式