【问题标题】:Inserting Records Access MDB with OleDB使用 OleDB 插入记录访问 MDB
【发布时间】:2011-10-07 22:27:06
【问题描述】:

为什么会这样? :-S 这次简短而简单。哦,我正在连接到一个 MDB 文件(2007 Access)。

代码:

public bool insertRecord(int SR_Number, string Serial_Number, string Model_Number, bool Chargeable, bool Priority, bool Rollback)
    {
        string cmdStr = "INSERT INTO Recovery_CD_Orders ([SR_Number], [Serial_Number], [Model_Number], [Chargeable], [Priority], [Agent_placing_order], [Rollback_reqd]) Values (@SR_Number, @Serial_Number, @Model_Number, @Chargeable, @Priority, @Agent_Placing_Order, @Rollback)";

        OleDbCommand cmd = new OleDbCommand(cmdStr, thisCon);

        cmd.Parameters.AddWithValue("SR_Number", SR_Number);
        cmd.Parameters.AddWithValue("Serial_Number", Serial_Number);
        cmd.Parameters.AddWithValue("Model_Number", Model_Number);
        cmd.Parameters.AddWithValue("Agent_Placing_Order", Environment.UserName);
        cmd.Parameters.AddWithValue("Chargeable", Chargeable);
        cmd.Parameters.AddWithValue("Priority", Priority);
        cmd.Parameters.AddWithValue("Rollback", Rollback);

        cmd.Connection.Open();
        cmd.ExecuteNonQuery();
        cmd.Connection.Close();
        cmd.Dispose();
        return true;
    }

错误:

Data type mismatch in criteria expression.

表格布局:

SR_Number: Number
Serial_Number: Text
Model_Number: Text
Agent_Placing_Order: Text
Chargeable: Yes/No
Priority: Yes/No
Rollback: Yes/No

【问题讨论】:

    标签: c# oledb jet


    【解决方案1】:

    很难从问题中提出的内容中分辨出来。我怀疑问题出在 AddWithValue 类型推断上。您最好的选择是以老式方式明确声明类型,因为这将告诉访问使用什么。

    【讨论】:

    • 感谢您,我实际上是从其他地方获取该代码并尝试应用它。最后我使用了 .Add 方法 :-) 感谢您的指点!
    猜你喜欢
    • 2012-06-12
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多