我不明白为什么每当我在txtParticulars.Text
和txtPayTo.Text
中加入撇号时,它都不会插入我的数据库。
错误是:Syntax error (missing operator) in query expression ''Joy's Boutique','Top's,'Issued')'.
我的文本框值为:
txtPayTo.Text
>喜悦的精品店
txtParticulars
>顶' S
cmbRemarks.SelectedItem
>发出
但只要我的txtParticulars
和txtPayTo
值没有撇号,我的数据就会保存。
以下是我的代码:
sql1 = "INSERT INTO Table1(Check_No,Voucher_No,Issue_Date,Company_Name,Bank_Type,Amount_in_Figure,Amount_in_Words,Payee,Particulars,Remarks) VALUES(@CheckNo,@VoucherNo,@Date,@CompName,@BankType,@AmtInFigure,@AmtInWords,@PayTo,@Particulars,@Remarks)"
Dim cmd1 As OleDbCommand = New OleDbCommand(sql1, myConnection)
cmd1.Parameters.AddWithValue("@CheckNo", txtCheckNo.Text)
cmd1.Parameters.AddWithValue("@VoucherNo", txtVoucherNo.Text)
cmd1.Parameters.AddWithValue("@Date", dtpDate.Text)
cmd1.Parameters.AddWithValue("@CompName", txtCompName.Text)
cmd1.Parameters.AddWithValue("@BankType", txtBankType.Text)
cmd1.Parameters.AddWithValue("@AmtInFigure", txtAmtInFigure.Text)
cmd1.Parameters.AddWithValue("@AmtInWords", txtAmtInWords.Text)
cmd1.Parameters.AddWithValue("@PayTo", txtPayTo.Text)
cmd1.Parameters.AddWithValue("@Particulars", txtParticulars.Text)
cmd1.Parameters.AddWithValue("@Remarks", cmbRemarks.SelectedItem)
cmd1.ExecuteNonQuery()
答案 0 :(得分:0)
使用Add代替AddWithValue
后者必须通过传入的值猜测正确的数据库类型
Add
方法更依赖于此(只要您不使用Add(string, object)
重载)。
根据您的示例:
cmd1.Parameters.Add("@PayTo", SqlDbType.Varchar)
cmd1.Parameters("@PayTo").Value = txtPayTo.Text
或作为一行(感谢Plutonix):
cmd1.Parameters.Add("@PayTo", SqlDbType.Varchar).Value = txtPayTo.Text