在用cmdInsert.ExecuteNonQuery();向access数据库中添加数据时,出现如下错误:System.FormatException: 索引(从零开始)必须大于或等于零,且小于参数列表的大小。
源错误:
行 28: cmdInsert.Parameters.Add("@favor",txtFavor.Text);
行 29: conPubs.Open();
行 30: cmdInsert.ExecuteNonQuery(); //红色的
行 31: conPubs.Close();
行 32: }请问各位大哥大姐是为什么呀?
源错误:
行 28: cmdInsert.Parameters.Add("@favor",txtFavor.Text);
行 29: conPubs.Open();
行 30: cmdInsert.ExecuteNonQuery(); //红色的
行 31: conPubs.Close();
行 32: }请问各位大哥大姐是为什么呀?
解决方案 »
- 高手进,girdview某一单元格内控件的链接样式修改问题!!!
- JQuery 在 asp.net2.0 中的应用
- 问个很笨的问题:对于vs2005新建项目问题,我对于新建项目一点也不明白,请教请教!
- 用asp.net+数据库 做一个关于会员的登录和注册的网站
- 請教個問題!~急,在線等候....
- ★★有关Sql2000与asp.net的小问题★★
- 大家好,小菜一叠呀。
- 请提示水晶报表10的下载地址,能下的,并且有注册码的.下载成功后立刻给分
- 怎么在C#里面弹出一个窗口啊?
- 怎样在服务器端打开一个新窗口!!!再现等待!!马上给分!!!
- DataGrid设置主键问题,请教高手!
- 又问两个问题 呵呵 很常见的
strUpdate = "Insert into [User] values(";
strUpdate = strUpdate + "@userName,";
strUpdate = strUpdate + "@passWord,";
strUpdate = strUpdate + "@sex,";
strUpdate = strUpdate + "@birthday,";
strUpdate = strUpdate + "@cardId,";
strUpdate = strUpdate + "@skill)";
string strAccessConn = ConfigurationSettings.AppSettings["AccessConnection"]+this.Server.MapPath("PerInfo.mdb");
OleDbConnection AccessCon=new OleDbConnection(strAccessConn);
OleDbCommand comm = new OleDbCommand();
comm.Connection = AccessCon;
comm.Connection.Open();
comm.CommandType = CommandType.Text;
comm.CommandText = strUpdate;
OleDbParameter parameter;parameter = comm.Parameters.Add("@userName",OleDbType.Char,16);
parameter.Value = Uid.Text.ToString();parameter = comm.Parameters.Add("@passWord",OleDbType.Char,16);
parameter.Value = this.Pwd.Text; parameter = comm.Parameters.Add("@sex",OleDbType.Char,2);
parameter.Value = this.Sex.SelectedValue.ToString();parameter = comm.Parameters.Add("@birthday",OleDbType.Char,16);
parameter.Value = this.Birthday.Text.Trim()+" ";parameter = comm.Parameters.Add("@cardId",OleDbType.Char,32);
parameter.Value = this.CardID.Text.Trim();
parameter = comm.Parameters.Add("@skill",OleDbType.Char,255);
parameter.Value = this.Skill.Text.Trim()+" ";comm.ExecuteNonQuery();
comm.Connection.Close();
comm.Dispose();
strUpdate = "Insert into [User] values(";
strUpdate = strUpdate + "@userName,";
strUpdate = strUpdate + "@passWord,";
strUpdate = strUpdate + "@sex,";
strUpdate = strUpdate + "@birthday,";
strUpdate = strUpdate + "@cardId,";
strUpdate = strUpdate + "@skill)";
string strAccessConn = ConfigurationSettings.AppSettings["AccessConnection"]+this.Server.MapPath("PerInfo.mdb");
OleDbConnection AccessCon=new OleDbConnection(strAccessConn);
OleDbCommand comm = new OleDbCommand();
comm.Connection = AccessCon;
comm.Connection.Open();
comm.CommandType = CommandType.Text;
comm.CommandText = strUpdate;
OleDbParameter parameter;parameter = comm.Parameters.Add("@userName",OleDbType.Char,16);
parameter.Value = Uid.Text.ToString();parameter = comm.Parameters.Add("@passWord",OleDbType.Char,16);
parameter.Value = this.Pwd.Text; parameter = comm.Parameters.Add("@sex",OleDbType.Char,2);
parameter.Value = this.Sex.SelectedValue.ToString();parameter = comm.Parameters.Add("@birthday",OleDbType.Char,16);
parameter.Value = this.Birthday.Text.Trim()+" ";parameter = comm.Parameters.Add("@cardId",OleDbType.Char,32);
parameter.Value = this.CardID.Text.Trim();
parameter = comm.Parameters.Add("@skill",OleDbType.Char,255);
parameter.Value = this.Skill.Text.Trim()+" ";comm.ExecuteNonQuery();
comm.Connection.Close();
comm.Dispose();
cmdInsert.Parameters.Add("@bedroom",DbType.String).Value=txtBedroom;
cmdInsert.Parameters.Add("@phone",DbType.String).Value=txtPhone;
这后面两行里难道少了。text
其次也写出你的表结构看下
System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。
还是cmdInsert.ExecuteNonQuery();出错
2.把.Parameters.Add("@参数名",DbType.String).Value
全改成:
.Parameters.Add("@参数名",System.Data.OleDb.OleDbType.VarChar,<字段长度>).Value=<txtBox.Text>
的形式
System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询。