从 c#.net 添加记录以访问数据库时出错

Posted

技术标签:

【中文标题】从 c#.net 添加记录以访问数据库时出错【英文标题】:Error while adding records to access database from c#.net 【发布时间】:2012-09-27 17:31:05 【问题描述】:

代码:

    int MaxRows = 0;
    int inc = 0;

    private void Form2_Load(object sender, EventArgs e)
    
        con = new System.Data.OleDb.OleDbConnection();
        ds1 = new DataSet();

        con.ConnectionString = " Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:/Documents and Settings/user/My Documents/anchu.accdb";
        string sql = "SELECT * From Table1";
        da = new System.Data.OleDb.OleDbDataAdapter(sql, con);

        con.Open();

        da.Fill(ds1, "Table1");
        //NavigateRecords();

        con.Close();
        //con.Dispose();
    
    /*private void NavigateRecords()
    
        DataRow drow = ds1.Tables["Table1"].Rows[0];

        textBox1.Text = drow.ItemArray.GetValue(0).ToString();
        textBox2.Text = drow.ItemArray.GetValue(1).ToString();
        textBox3.Text = drow.ItemArray.GetValue(2).ToString();
        textBox4.Text = drow.ItemArray.GetValue(3).ToString();
    */

    private void groupBox1_Enter(object sender, EventArgs e)
    

    

    private void button2_Click(object sender, EventArgs e)
    
        textBox1.Clear();
        textBox2.Clear();
        textBox3.Clear();
        textBox4.Clear();
    

    private void button1_Click(object sender, EventArgs e)
    
        System.Data.OleDb.OleDbCommandBuilder cb;
        cb = new System.Data.OleDb.OleDbCommandBuilder(da);

        DataRow drow = ds1.Tables["Table1"].NewRow();
        drow[0] = textBox1.Text;
        drow[1] = textBox2.Text;
        drow[2] = textBox3.Text;
        drow[3] = textBox4.Text;

        ds1.Tables["Table1"].Rows.Add(drow);

        MaxRows = MaxRows + 1;
        inc = MaxRows - 1;
        da.Update(ds1, "Table1");

        MessageBox.Show("Entry Added");
    

我在一行中遇到错误:

da.Update(ds1, "Table1");

错误说..OleDBException 未处理

在下面它说.. INSERT INTO 语句中的语法错误。

我也正确连接了我的访问数据库。

我的表格格式如下

字段名称 Sno.(主键) 名称 公司名称 联系电话

数据类型 文本 文本 文本 文字

【问题讨论】:

da.Update() 不是您提供的代码示例的一部分。问题很可能出在代码的那部分。到目前为止,您尝试了哪些故障排除? 我没有做任何事情.. 我只是想编辑访问字段.. 我删除了第一个字段-SNo。即使现在我也有同样的错误 当你说你没有做任何事情时,这是否意味着它正在工作并且最近停止工作,或者这个新代码从未工作过? 看起来那是插入而不是更新。 你能给我sn-p的代码吗? 【参考方案1】:

可能是两者之一:

1)围绕更新语句打开和关闭连接

2) 设置适配器的 updatecommand 属性。见msdn页面

【讨论】:

以上是关于从 c#.net 添加记录以访问数据库时出错的主要内容,如果未能解决你的问题,请参考以下文章

添加记录以从 C# 访问数据库

带有按钮、组合框和文本框的 C# WinForms (.NET Framework) DataGridView:使用按钮添加新行以添加组合框项时出错

从 ms sql 导出以访问时出错

c# windows窗体(添加信息以访问数据库)[关闭]

将数据从一个表更新到另一个表并在新的 ms 访问 .net 时插入

Selenium C#从Excel读取数据以进行数据驱动测试时出错