在datagridview中,我有一个复选框列,其中复选框被选中的行应该从datagridview以及从数据库中删除,当我点击delete
按钮时,我正在使用这个代码做这个功能,使用此代码我能够从datagidview中删除行,但从数据库中删除它时,我得到此异常Data type mismatch in criteria expression.
此行代码cmd.ExecuteNonQuery();
我在哪里出错了,应该做什么修正我得到这个工作从数据库和datagridview删除行
private void button1_Click(object sender, EventArgs e)
{
List<int> ChkedRow=new List<int>();
DataRow dr;
List<int> ChkedRowQid=new List<int>();
for (int i = 0; i <= dataGridView1.RowCount - 1; i++)
{
if (Convert.ToBoolean(dataGridView1.Rows[i].Cells["select"].Value) == true)
{
ChkedRow.Add(i);
ChkedRowQid.Add(Convert.ToInt16(dataGridView1.Rows[i].Cells["QID"].Value));
}
}
foreach (int k in ChkedRow)
{
dr = dt.Rows[k];
dt.Rows[k].Delete();
foreach(int j in ChkedRowQid)
{
bool flag=false;
try
{
string sql = "DELETE FROM Questions WHERE QID='" + j + "' ";
OleDbCommand cmd = new OleDbCommand(sql,acccon);
cmd.ExecuteNonQuery();
flag = true;
}
catch(Exception err)
{
}
}
//dt.Rows.Remove(dr);
}
在此先感谢您的帮助
在你的数据库中,QID是一个字符串还是某种类型的整数? – Vahlkron
因为我使用Microsoft Access所以QID是文本类型的整数 – Durga