我不能使用c#语句更新Access 2007表
本文关键字:更新 Access 2007 语句 不能 | 更新日期: 2023-09-27 18:18:30
我正在尝试使用c#应用程序将记录添加到MS Access表2007。我的表由3个字段组成:ID
, Name
和phone
。
例如,我试着用这些数据添加一个记录:ID=1
, Name=Boulis
和phone=1212422
。查询没有返回任何错误,但我没有在我的表中找到这个数据。
但最令人惊讶的是,当我试图添加相同的先前数据时,我得到一个错误说:
"对表的修改请求不成功,因为它们会在索引、主键或关系中创建重复的值。更改包含重复数据的字段中的数据,删除索引或重新定义索引以允许重复条目,然后重试。"
private void button1_Click(object sender, EventArgs e)
{
OleDbConnection con = new OleDbConnection();
string ConnStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:'boulis.accdb;;Persist Security Info=False ";
con.ConnectionString = ConnStr;
con .Open();
MessageBox.Show("The connection is available now");
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = "INSERT INTO info(ID, Name, phone) Values(@StudIDTxt, @StudNameTxt, @StudCNCITxt)";
cmd.Parameters.AddWithValue("@StudIDTxt",1);
cmd.Parameters.AddWithValue("@StudNameTxt", "boulis");
cmd.Parameters.AddWithValue("@StudCNCITxt", 1212422);
cmd.Connection = con;
cmd.ExecuteNonQuery();
MessageBox.Show("table is already updated");
}
第二次尝试时收到的错误消息清楚地表明第一次尝试成功。如果你在c#中执行INSERT之前已经在Access中打开了表,那么你将无法看到新记录,直到
-
在Access中关闭并重新打开表,或者
-
刷新数据表视图(或表单,或其他)。这可以通过点击"主页"选项卡的"记录"部分的"刷新所有"按钮来完成(无论如何,在Access 2010中)。