触发器不通过ODBC触发

时间:2015-11-05 13:21:56

标签: c# odbc oledb visual-foxpro

我在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,正确的表。

有谁知道我会收到此错误的原因?

0 个答案:

没有答案