C#更新ACCESS数据库问题

冰雨在线 2012-03-23 05:05:53
问题如图,显示“索引必须大于等于0,且小于参数列表的大小”
问的access表名是person,里面只有3列“姓名”“手机”“性别”,目前只有2行记录。
要修改数据时弹出如上错误,不知道SQL语句是怎么错误的。

错误截图


数据库ACCESS的1个表。
...全文
144 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰雨在线 2012-03-23
  • 打赏
  • 举报
回复
上面的变量str是单击某行的索引(第一列第一行的值)

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();

}
冰雨在线 2012-03-23
  • 打赏
  • 举报
回复
//更新数据库
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "" || textBox2.Text == "" || textBox3.Text == "")
{
MessageBox.Show("修改数据记录信息不完整,重新输入!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
mycon.Open();
//Updte更新语句
string name=textBox1.Text.Trim();
string phone = textBox2.Text.Trim();
string sex = textBox3.Text.Trim();

//string myupdate = "update person set 手机 = phone,性别 = sex where 姓名 = str";
string myupdate = string.Format (@"UPDATE person SET 姓名='{0}',手机='{1}', ,性别='{2}' WHERE 姓名='{3}',name,phone,sex,str");

OleDbCommand mycmd = new OleDbCommand(myupdate, mycon);
mycmd.ExecuteNonQuery(); //执行更新语句

mycon.Close();
mycon.Dispose(); //释放OleDbConnection对象所占资源空间。
MessageBox.Show("成功修改记录!", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

}

冰雨在线 2012-03-23
  • 打赏
  • 举报
回复
不会吧 连这个图片都不行
熙风 2012-03-23
  • 打赏
  • 举报
回复
string sql = string.Format("Update [Employee] set [WorkNo]='{0}',[Name]='{1}' where [ID]={2}", emp.WorkNo, emp.Name, emp.Id);


LZ的数字是否写错了》?
qujianye 2012-03-23
  • 打赏
  • 举报
回复
看不到图片,上代码吧
  • 打赏
  • 举报
回复
看不到图片

110,536

社区成员

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

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

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