日期:2014-05-18  浏览次数:20792 次

C#更新ACCESS数据库问题
问题如图,显示“索引必须大于等于0,且小于参数列表的大小”
问的access表名是person,里面只有3列“姓名”“手机”“性别”,目前只有2行记录。
要修改数据时弹出如上错误,不知道SQL语句是怎么错误的。

错误截图

数据库表

其中变量“str”为判断时用的:即当前选择的某一行记录的第一列的值。代码如下
[code=C#][/code] 
  private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
  {
  str = mytable.Rows[e.RowIndex][0].ToString(); //为变量 str 赋值

  textBox1.Text = mytable.Rows[e.RowIndex][0].ToString(); //为文本框属性赋值
  textBox2.Text = mytable.Rows[e.RowIndex][1].ToString();
  textBox3.Text = mytable.Rows[e.RowIndex][2].ToString();
   
  }

------解决方案--------------------
Format格式和参数数量是不是一样的
------解决方案--------------------
[Quote=引用:]
问题如图,显示“索引必须大于等于0,且小于参数列表的大小”
问的access表名是person,里面只有3列“姓名”“手机”“性别”,目前只有2行记录。
要修改数据时弹出如上错误,不知道SQL语句是怎么错误的。

错误截图

数据库表

其中变量“str”为判断时用的:即当前选择的某一行记录的第一列的值。代码如下
[code=C#][/code] 
privat……
[/Quote]
你没看到你手机和性别之间有两个逗号吗?
------解决方案--------------------
貌似逗号 还是中文的
------解决方案--------------------
在手机='{1}'后还多了一个','肯定是这个问题造成?
------解决方案--------------------
string myupdate = string.Format (@"UPDATE person SET 姓名='{0}',手机='{1}',性别='{2}' WHERE 姓名='{3}'",name,phone,sex,str);不报错嘛