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

时间:2016-04-11 16:47:39

标签: c#-4.0 ms-access-2007

我试图将null datetime值插入到数据库中,但是它给了我数据类型在条件表达式中不匹配。这个问题是根据我的观察,当我试图插入null日期来访问数据库时我改成了代码,但仍然没有解决错误

string bank = txtbankname.Text;
       bank = "";
       string cheque = txtchequeno.Text;
       cheque = "";


       string billno = txtbillno.Text;
       billno = "";


       string codecreate = txtcodecreator.Text;
       codecreate = "";

       string connetionString = null;
       connetionString = ConfigurationManager.ConnectionStrings["AccessConnectionString"].ConnectionString;
       cnn.ConnectionString = connetionString;

       string SqlString = "Insert Into Billing([FormNo],[Date],[TruckNo],[Office_Code],[Party_Code],[Party_Code1],[Location],[Supplier],[Item],[Invoice_no],[Invoice_date],[Package],[Weight],[Invest_Amount],[Percentage],[Amount],[Total_Amount],[Payment_Amount],[Payment_Type],[Bank_Name],[Cheque_No],[Cheque_Date],[Bill_No],[Bill_Date],[Code_Create]) Values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
       using (cmd = new OleDbCommand(SqlString, cnn))
       {
           cnn.Open();
           cmd.CommandType = CommandType.Text;
           cmd.Parameters.AddWithValue("@FormNo", txtformno.Text);
           cmd.Parameters.AddWithValue("@Date", txtdate.Text);
           cmd.Parameters.AddWithValue("@TruckNo", txttruck.Text);
           cmd.Parameters.AddWithValue("@Office_Code", txtofficecode.Text);
           cmd.Parameters.AddWithValue("@Party_Code", txtpartycode.Text);
           cmd.Parameters.AddWithValue("@Party_Code1", txtpartycode1.Text);
           cmd.Parameters.AddWithValue("@Location", txtlocation.Text);
           cmd.Parameters.AddWithValue("@Supplier", txtsupplier.Text);
           cmd.Parameters.AddWithValue("@Item", txtitem.Text);
           cmd.Parameters.AddWithValue("@Invoice_no", txtinvoice.Text);
           cmd.Parameters.AddWithValue("@Invoice_date", DateTime.Parse(txtmaskinvoice.Text));
           cmd.Parameters.AddWithValue("@Package", txtpackage.Text);
           cmd.Parameters.AddWithValue("@Weight", txtwieght.Text);
           cmd.Parameters.AddWithValue("@Invest_Amount", Convert.ToDouble(txtinvestamount.Text));
           cmd.Parameters.AddWithValue("@Percentage", txtpercentage.Text);
           cmd.Parameters.AddWithValue("@Amount", Convert.ToDouble(txtamount.Text));
           cmd.Parameters.AddWithValue("@Total_Amount", Convert.ToDouble(txttotalamount.Text));
           cmd.Parameters.AddWithValue("@Payment_Amount", Convert.ToDouble(txtpaymentamount.Text));
           cmd.Parameters.AddWithValue("@Payment_Type", txtpaymenttype.Text);
           if (txtbankname.Text == "")
           {
               cmd.Parameters.AddWithValue("@Bank_Name", bank);

           }

           else
           {
               cmd.Parameters.AddWithValue("@Bank_Name", txtbankname.Text);
           }


           if (txtchequeno.Text == "")
           {
               cmd.Parameters.AddWithValue("@Cheque_No", cheque);
           }
           else
           {

               cmd.Parameters.AddWithValue("@Cheque_No", txtchequeno.Text);
           }


           DateTime chequeDate;
           if (DateTime.TryParse(txtmaskchequedate.Text, out chequeDate))
           {


               cmd.Parameters.AddWithValue("@Cheque_Date", chequeDate);

           }
           else
           {
              // cmd.Parameters.AddWithValue("@Cheque_Date", DateTime.TryParse(txtmaskchequedate.Text,out value1));
               cmd.Parameters.AddWithValue("@Cheque_Date", DBNull.Value);

           }

           if (txtbillno.Text == "")
           {
               cmd.Parameters.AddWithValue("@Bill_No", billno);

           }
           else
           {
               cmd.Parameters.AddWithValue("@Bill_No", txtbillno.Text);


           }
           DateTime BillDate;
           if (DateTime.TryParse(txtmaskbilldate.Text, out BillDate))
           {


               cmd.Parameters.AddWithValue("@Bill_Date", BillDate);

           }
           else
           {
               cmd.Parameters.AddWithValue("@Bill_Date", DBNull.Value);
           }


           if (txtcodecreator.Text == "")
           {
               cmd.Parameters.AddWithValue("@Code_Create", codecreate);
           }
           else
           {
               cmd.Parameters.AddWithValue("@Code_Create", txtcodecreator.Text.ToString());
           }

           int n = cmd.ExecuteNonQuery();
           cnn.Close();
           if (n > 0)
           {
               MessageBox.Show("Data Inserted Successfully", "Data Inserted ", MessageBoxButtons.OK, MessageBoxIcon.Information);
           }
       }

0 个答案:

没有答案