从数据网格视图和数据库中更新和删除记录

本文关键字:更新 删除 记录 数据库 数据网 网格 视图 数据 | 更新日期: 2023-09-27 17:57:00

我是新来的,我想从数据网格视图以及数据库中更新和删除记录,我有以下代码用于更新和删除。

int num = 0;
foreach (DataGridViewRow row in this.dataGridView1.Rows)
{
    if (Convert.ToBoolean(row.Cells[0].Value))
    {
        string ID = this.dataGridView1.Rows[row.Index].Cells["ID"].Value.ToString();
        string CoCode = this.dataGridView1.Rows[row.Index].Cells["CoCode"].Value.ToString();
        string CoName_mar = this.dataGridView1.Rows[row.Index].Cells["CoName_mar"].Value.ToString();
        con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:''Documents and Settings''mayur patil''My Documents''Dairy_db''tblCompany_1.mdb";
        con.Open();
        OleDbCommand cmd = new OleDbCommand("UPDATE tblCompany_1 SET (CoCode=@CoCode,CoName_mar=@CoName_mar where ID=@ID)", con);
        cmd.Parameters.AddWithValue("CoCode", CoCode);
        cmd.Parameters.AddWithValue("CoName_mar", CoName_mar);
        cmd.Parameters.AddWithValue("ID", ID);
        cmd.ExecuteNonQuery();
        con.Close();
        num++;
    }
}
if (num > 0)
{
    MessageBox.Show("Record Updated !");        
}
this.Hide();
listOfCompany v = new listOfCompany();
v.ShowDialog();

添加删除记录。.

OleDbConnection con = new OleDbConnection();
con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data  Source=C:''Documents and Settings''mayur patil''My Documents''Dairy_db''tblCompany.mdb";
OleDbCommand cmd = new OleDbCommand ("DELETE FROM tblCompany WHERE (CoCode = i)");
con.Open();
cmd.ExecuteNonQuery();
con.Close();
  1. 对于更新查询,我收到错误"OleDbException 在 UPDATE 中处理语法错误"cmd.ExecuteNonQuery();

  2. 对于删除查询,我收到错误"已处理 OleDbException"。找不到可安装的 ISAM con.Open();

我应该如何克服这个问题?

从数据网格视图和数据库中更新和删除记录

1)删除不必要的括号:

OleDbCommand cmd = new OleDbCommand("UPDATE tblCompany_1 SET CoCode=@CoCode,CoName_mar=@CoName_mar where ID=@ID", con);

您可以尝试将连接打开和关闭放在foreach循环之外,这样您就不必每次都这样做。

2) 删除连接字符串中多余的空格:

con.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:''Documents and Settings''mayur patil''My Documents''Dairy_db''tblCompany.mdb";

此外,您的 delete 语句中有一个未定义的i。这应该是一个参数吗?

对于您的 2 个问题:

  1. 删除SET关键字后面的括号。

  2. 此错误表示连接字符串有问题。您的Data Source中有一个额外的空间。这是Data^^Source.

建议将.mdb移动到没有空格的文件路径。

string conn = @"PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:'DB'tblCompany.mdb";
    第一个查询不需要
  1. 在查询内部使用括号。替换为

    UPDATE tblCompany_1 SET CoCode=@CoCode, CoName_mar=@CoName_mar where ID=@ID 
    
  2. 删除查询:什么是i?如果你定义了它,你可以做这样的事情:

    "DELETE FROM tblCompany WHERE (CoCode = " + i + ")"
    

    虽然,使用参数会更好。