";标准表达式""中的数据类型不匹配;插入记录时

本文关键字:quot 插入 不匹配 记录 标准 表达式 数据类型 | 更新日期: 2023-09-27 18:00:26

  string strConnect = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=record.accdb";

        using (OleDbConnection con = new OleDbConnection(strConnect))
        {
            con.Open();
            using (OleDbCommand cmd = new OleDbCommand("insert into Industry(cName,Amount,amt_type,cheqno,bankname,branchname,tDate) values(@cname,@amount,@amt_type,@chqnum,@bname,@bchname,@tdate)", con))
            {
                cmd.Parameters.AddWithValue("@cname", name_txt.Text);
                cmd.Parameters.AddWithValue("@amount", Convert.ToDouble(amount_txt.Text));
                cmd.Parameters.AddWithValue("@amt_type", amt);
                cmd.Parameters.AddWithValue("@chqnum", cheque_txt.Text);
                cmd.Parameters.AddWithValue("@bname", bank_txt.Text);
                cmd.Parameters.AddWithValue("@bchname", branch_txt.Text);
                cmd.Parameters.AddWithValue("@tdate",     dateTimePicker1.Value.ToShortDateString());
                cmd.ExecuteNonQuery();

            }
            con.Close();

我有一个错误,说在System.Data.dll 中发生了类型为"System.Data.OleDb.OleDbException"的未处理异常

附加信息:条件表达式中的数据类型不匹配可能的原因和错误是在cmd行。ExecuteNonQuery((;。

有两个单选按钮可以接收更改事件的输入文本。我注意到,在检查支票和填写表单的所有细节时,它是有效的,但当我检查现金字段并将一些字段留空时,它会抛出一个异常。如果有任何帮助,我们将不胜感激。

";标准表达式""中的数据类型不匹配;插入记录时

更明确地指定如下参数以消除错误:

SqlCommand命令=新的SqlCommand(commandText,connection(;命令参数.Add("@ID",SqlDbType.Int(;命令参数["@ID"].Value=客户

您正在使用AddWithValue,但您希望将参数转换为双精度:

cmd.Parameters.AddWithValue("@amount", Convert.ToDouble(amount_txt.Text));

您应该让ADO.NET来匹配正确的数据类型:

cmd.Parameters.AddWithValue("@amount", amount_txt.Text);