我在C#中有一个类,它试图使用OleDB删除FoxPro DBF文件中的记录。我可以毫无问题地添加记录,但是当我想要删除时,我得到以下错误,"触发器在Cntref1"中失败,其中Cntref1是我试图从中删除的表。
这是C#方法;
private bool DeleteContractRefDBF(int contractID, string whatFile)
{
MessageBox.Show(contractID.ToString());
MessageBox.Show(whatFile);
try
{
string constr = ConfigurationManager.ConnectionStrings["dbfString"].ConnectionString;
using (OleDbConnection dbfCon = new OleDbConnection(constr))
{
dbfCon.Open();
var dbfCmd = new OleDbCommand("DELETE FROM ? WHERE cr1_id=?", dbfCon);
dbfCmd.Parameters.Clear();
dbfCmd.Parameters.AddWithValue("@whatFile", whatFile);
dbfCmd.Parameters.AddWithValue("@contractID", contractID);
dbfCmd.ExecuteScalar();
return true;
}
}
catch (OleDbException ex)
{
MessageBox.Show("Error Updating DBF (Show Dan): " + ex);
return false;
}
}
ContractID是7,它确实存在,whatFile是Cntref1,正确的表。
有谁知道我会收到此错误的原因?