System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。小弟新手,希望高手详细指点。

stringsql="Select*fromTeacherswhereAcccount='"+txtNum.Text.ToString()+"'";OleDbDataAd... string sql="Select * from Teachers where Acccount='" + txtNum.Text.ToString() + "'";
OleDbDataAdapter dauser = new OleDbDataAdapter(sql ,conn);
DataSet dsuser = new DataSet();
dauser.Fill(dsuser, "usermessage");//这一句报错
if (dsuser.Tables[0].Rows.Count == 0)//判断用户是否存在

整段代码如下:
protected void btnOk_Click(object sender, ImageClickEventArgs e)
{
if (txtNum.Text.Trim() == "" || txtPwd.Text.Trim() == "")
{
MessageBox.Show("对不起,你还没有输入用户名和密码", "提示");
txtNum.Focus();
}
else
{
OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\ExamPaperManager.mdb");
conn.Open();

string sql="Select * from Teachers where Acccount='" + txtNum.Text.ToString() + "'";

OleDbDataAdapter dauser = new OleDbDataAdapter(sql ,conn);
DataSet dsuser = new DataSet();
dauser.Fill(dsuser, "usermessage");
if (dsuser.Tables[0].Rows.Count == 0)//判断用户是否存在
//用户不存在,给出提示后清空文本框再定位光标到文本框1
{
MessageBox.Show("对不起,用户名不存在", "提示");
txtNum.Text = "";
txtPwd.Text = "";
txtNum.Focus();
}
else
//用户存在,再判断密码是否正确
{
DataRow[] dr = dsuser.Tables[0].Select("Account='" + txtNum.Text + "'");//为取数据表中某列字段内容做准备
if (string.Compare(dr[0]["Pwd"].ToString(), txtPwd.Text) == 0)//判断密码是否相等到
//密码也正确,则显示登录成功窗体
{
Response.Redirect("welcome.aspx");
}
else
//密码不正确,给出提示,再定位光标重输密码
{
MessageBox.Show("对不起,密码错误,请重新输入", "提示");
txtPwd.Text = "";
txtPwd.Focus();
}

}
}
}
展开
 我来答
walleyekneel
2011-08-15
知道答主
回答量:59
采纳率:0%
帮助的人:29.2万
展开全部
string sql="Select * from Teachers where Acccount='" + txtNum.Text.ToString() + "'";
OleDbDataAdapter 的fill方法不支持带参数查询语句 ,只能支持这个语句Select * from Teachers 查询

用OleDbDataReader里面 Load方法
网易云信
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同... 点击进入详情页
本回答由网易云信提供
jowu598
2011-08-15 · TA获得超过443个赞
知道答主
回答量:210
采纳率:0%
帮助的人:104万
展开全部
错误可能1.数据库连接字符串不正确,
错误可能2,看看你的conn是否异常
做法:在你的错误语句dauser.Fill(dsuser, "usermessage");//前加一个断点看看语句是怎么样的
肯定是小问题,大体没错
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
平梦醉神风1I
推荐于2016-01-30 · TA获得超过1510个赞
知道小有建树答主
回答量:691
采纳率:0%
帮助的人:1034万
展开全部
数据库里的字段是Acccount么?应该是Account吧

string sql="Select * from Teachers where Acccount='" + txtNum.Text.ToString() + "'";

这里直接输出sql语句,看下在数据库执行是否正确
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式