C# 连接Access数据库,总说至少有一个参数没有被指定值

Hanyu_Li 2018-01-18 12:07:18
单步调试过,都有值,但是就是会报错,求大神帮忙看看

private void button_Login_Click(object sender, EventArgs e)
{
if(!pdyj())
{
MessageBox.Show("请输入正确信息!");
return;
}
string ConnectionWords = @"provider = Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Administrator\Desktop\回原点运动\回原点运动\login.mdb";
OleDbConnection MyAccessConnect = new OleDbConnection(ConnectionWords);
MyAccessConnect.Open();
string CommandString = "select * from Login where 用户名称 = '"+ this.textBox1.Text +"'and 用户密码 ='&"+ this.textBox2.Text +"'and 用户类型 ='"+ this.comboBox1.Text +"'";
OleDbCommand cmd = new OleDbCommand(CommandString, MyAccessConnect);
OleDbDataReader ReadMyaccess = cmd.ExecuteReader();
MyAccessConnect.Close();
if (ReadMyaccess.Read())
{
usname = textBox1.Text;
uspass = textBox2.Text;
uslevel = comboBox1.Text;
MessageBox.Show("登录成功!");
Form6 fm = new Form6();
this.Hide();
fm.Show();
this.Dispose();
}
else
{

MessageBox.Show("连接失败!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
...全文
481 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
FainSheeg 2018-01-19
  • 打赏
  • 举报
回复
拼接有问题,一个是怎么多出 &来,二个是注意and 前面 要有空格 。
Jason_Mao1 2018-01-18
  • 打赏
  • 举报
回复
还有一点你要知道 不同版本的ACCESS 的连接方式会有所差别,希望能帮到你。
Jason_Mao1 2018-01-18
  • 打赏
  • 举报
回复
你把那个错误信息再往深层次的点击一下看看,会看到详细的报错信息 。如果是LOAD ACCESS 成功的话,应该是表名没有对应,或者是SHEET 没有对应正确。欢迎追问。
秋的红果实 2018-01-18
  • 打赏
  • 举报
回复
else { MessageBox.Show("连接失败!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else说明库里没有要登陆的用户信息,需要先注册该用户,而不是连接失败。 要判断连接失败,需要读取oledbconnection的状态属性,简单做法是:用try...catch...包围登陆代码,catch里面提示 -------------------------\0
思远笃行 2018-01-18
  • 打赏
  • 举报
回复
再一个,你的登录语句应该拼接有问题,密码部分多了&,看看是不是。
思远笃行 2018-01-18
  • 打赏
  • 举报
回复
引用 3 楼 Hanyu_Li 的回复:
[quote=引用 1 楼 mkbaoquan 的回复:] 你把那个错误信息再往深层次的点击一下看看,会看到详细的报错信息 。如果是LOAD ACCESS 成功的话,应该是表名没有对应,或者是SHEET 没有对应正确。欢迎追问。
谢谢!是我粗心了,真是尴尬,还找了好久问题 但是改好之后,在 if (ReadMyaccess.Read())这里只能走到else,我不太明白这个.read 获取的是什么值,我在单步调试的时候没有找到对应的值[/quote] .read读的应该是有没有查到的数据,如果有为true,没有对应记录则为false。
Hanyu_Li 2018-01-18
  • 打赏
  • 举报
回复
引用 1 楼 mkbaoquan 的回复:
你把那个错误信息再往深层次的点击一下看看,会看到详细的报错信息 。如果是LOAD ACCESS 成功的话,应该是表名没有对应,或者是SHEET 没有对应正确。欢迎追问。
谢谢!是我粗心了,真是尴尬,还找了好久问题 但是改好之后,在 if (ReadMyaccess.Read())这里只能走到else,我不太明白这个.read 获取的是什么值,我在单步调试的时候没有找到对应的值

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧