我是新来的,我想更新和删除datagridview以及数据库中的记录我有以下代码进行更新和删除..
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();
更新查询我在cmd.ExecuteNonQuery();
对于删除查询我收到错误“OleDbException已被处理..找不到可安装的ISAM。”在con.Open();
我应该如何克服这个问题?
答案 0 :(得分:2)
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";
此外,您的删除语句中有一个未定义的i
。这应该是一个参数吗?
答案 1 :(得分:1)
对于你的两个问题:
在SET
关键字后删除括号altogther。
此错误表示连接字符串存在问题。您的Data Source
中有一个额外的空间。它是Data^^Source
。
建议将.mdb移动到没有空格的文件路径。
string conn = @"PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\DB\tblCompany.mdb";
答案 2 :(得分:0)
第一个查询在查询中不需要括号。替换为
UPDATE tblCompany_1 SET CoCode=@CoCode, CoName_mar=@CoName_mar where ID=@ID
删除查询:什么是i
?如果你定义了它,你可以这样做:
"DELETE FROM tblCompany WHERE (CoCode = " + i + ")"
虽然使用参数会更好。