首页 > 解决方案 > System.Data.OleDb.OleDbException: '标准表达式中的数据类型不匹配。在c#中

问题描述

当我在其中提供数字数据时,我在插入和更新时遇到错误TXT_Firm_Pincode.TextTXT_Firm_Bank_Ac_No.Text当我离开这两个字段时,它的工作完美,任何人都可以帮助我。

MC.Cmd_SQL = new OleDbCommand($@"Update TBL_Firm set 
    Firm_Owner = '{TXT_Firm_Owner.Text}', 
    Firm_Name = '{TXT_Firm_Name.Text}', 
    Firm_Address = '{TXT_Firm_Address.Text}', 
    Firm_City = '{TXT_Firm_City.Text}', 
    Firm_Pincode = @Firm_Pincode, 
    Firm_State= '{CB_Firm_State.Text}', 
    Firm_Con_Person = '{TXT_Firm_Con_Person.Text}', 
    Firm_Con_No = {TXT_Firm_Con_No.Text}, 
    Firm_GSTN = '{TXT_Firm_GSTN.Text}', 
    Firm_Bank_Name = '{TXT_Firm_Bank_Name.Text}', 
    Firm_Bank_Ac_No = @Firm_Bank_Ac_No,
    Firm_Bank_Branch = '{TXT_Firm_Bank_Branch.Text}',
    Firm_Bank_IFSC= '{TXT_Firm_Bank_IFSC.Text}',
    Firm_MailID = '{TXT_Firm_MailID.Text}' 
    where Firm_ID = {TXT_Firm_ID.Text}", MC.DB_Connection);

MC.Cmd_SQL.CommandType = CommandType.Text;

MC.Cmd_SQL.Parameters.AddWithValue("@Firm_Pincode" , TXT_Firm_Pincode.Text == "" ? DBNull.Value : (object)"Null");

MC.Cmd_SQL.Parameters.AddWithValue("@Firm_Bank_Ac_No", TXT_Firm_Bank_Ac_No.Text == "" ? DBNull.Value : (object)"Null"); 

MC.Cmd_SQL.ExecuteNonQuery();

标签: c#

解决方案


三元运算符在为真和假时condition ? operand1 : operand2返回- 否则。operand1condition

您的operand1声明没问题,但您需要更改operand2以将文本框值放入其中:

MC.Cmd_SQL.Parameters.AddWithValue("@Firm_Pincode" , 
  TXT_Firm_Pincode.Text == "" ? DBNull.Value : TXT_Firm_Pincode.Text);

MC.Cmd_SQL.Parameters.AddWithValue("@Firm_Bank_Ac_No", 
  TXT_Firm_Bank_Ac_No.Text == "" ? DBNull.Value : TXT_Firm_Bank_Ac_No.Text); 

推荐阅读