C#添加异常,未处理OLeDbException,查询值的数目与目标字段中的数目不同。

用C#和Access编写的winform应用程序,数据库有userid(主键),username,password,三个字段。添加就抛异常报错语句inti=cmd.Exe... 用C#和Access编写的winform应用程序,数据库有userid(主键),username,password,三个字段。添加就抛异常
报错语句 int i = cmd.ExecuteNonQuery();
添加代码:
string strConnection = "Provider=Microsoft.Jet.OleDb.4.0;";
strConnection += @"Data Source=C:\Users\thtf\Desktop\新建文件夹\管理系统\管理系统\Database\xiangmu.mdb"; // 定义连接
OleDbConnection objConnection = new OleDbConnection(strConnection);
objConnection.Open();
string insert_sql = "insert into login_admin values(@username,@password)";
OleDbCommand cmd = new OleDbCommand();//实例化Command对象
cmd.CommandText = insert_sql;
//这句必须指定,没有这句,查询操作将无法进行
//将sql语句赋值给CommandText属性

cmd.Connection = objConnection;
//关联Connection对象,建立数据库连接;这句不能少

cmd.Parameters.Add("@username", OleDbType.VarChar).Value = txtusername.Text;
cmd.Parameters.Add("@password", OleDbType.VarChar).Value = txtpassword.Text;
int i = cmd.ExecuteNonQuery();
//cmd.ExecuteNonQuery(); 返回执行sql语句对应表中数据被更改的行数
//适用于insert、update、delete操作,当其返回的值>0时,
//说明对应执行sql语句的表中有数据被更改
//此时,操作成功~~!
//反之 则操作失败~~!

if (i > 0)
{
MessageBox.Show("注册信息成功!");
}
else
{
MessageBox.Show("注册信息失败!");
}
objConnection.Close();
展开
 我来答
newman325
2011-09-29 · 超过32用户采纳过TA的回答
知道答主
回答量:71
采纳率:0%
帮助的人:76.4万
展开全部
提示很明显的啊,,查询值的数目与目标字段中的数目不同,,就是你这句话insert into login_admin values(@username,@password)"; 查询值就是你提供的(@username,@password),看看login_admin 这个表,他的字段数是不是就是两个? 写这种代码注意习惯,login_admin 后面最好提供字段列表,更要注意是不是有主键、非空列,你这样写90%以上会出错!
学好数学数学好学
2011-09-30 · 超过62用户采纳过TA的回答
知道小有建树答主
回答量:736
采纳率:25%
帮助的人:191万
展开全部
"insert into login_admin values(@username,@password)";
改成 "insert into login_admin(username,password) values(@username,@password)";
试试看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式