我无法使用C#语句更新Access 2007表

时间:2013-06-13 18:18:24

标签: c# .net ms-access ado.net ms-access-2007

我尝试使用C#应用程序将记录添加到MS Access表2007。我的表格包含3个字段:IDNamephone

例如,我尝试为这些数据添加一条记录:ID=1Name=Boulisphone=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");
}

1 个答案:

答案 0 :(得分:0)

第二次尝试时收到的错误消息清楚地表明第一次尝试成功。如果在使用C#执行INSERT之前已经在Access中打开了表,那么在

之前您将无法看到新记录
  • 关闭并重新打开Access中的表格,或

  • 刷新数据表视图(或表格,或其他)。这可以通过单击“主页”选项卡的“记录”部分中的“全部刷新”按钮来完成(无论如何,在Access 2010中)。