我使用C#代碼將一些值插入到SQL Server中。我在數據庫中創建了RemainingPayment
列作爲Decimal(18,2)
數據類型,並且還允許爲空。但是,當我從C#執行我的查詢,它抱怨:通過C#代碼向SQL Server插入空(空文本框)值時出錯
附近有語法錯誤,
重要的是要注意,我得到這個錯誤僅適用於具有Decimal(18,2)
數據類型RemainingPayment
列是很重要的。對於另一個有nvarchar
數據類型的列,它工作正常。
這裏是我的代碼:
try
{
using (SqlConnection con = new SqlConnection(ConStr))
{
string query = "INSERT INTO tblExpEntry(RemainingPayment, CHQNo, TransactionID) VALUES (" + tbRemainingPayment.Text + ", '"+tbCHQNo.Text+"', '"+lbl_ID.Text+"')";
using (SqlCommand cmd = new SqlCommand(query,con))
{
cmd.CommandType = CommandType.Text;
con.Open();
cmd.ExecuteNonQuery();
MessageBox.Show("Transaction Successful.", "Created");
generateTransactionID();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
使用參數,而不是將值填入查詢字符串中。 –
它也有助於避免您看到的錯誤,這些錯誤有時是由於忘記了引號以及您可以創建的所有字符串問題而導致的。這種方法也是一個MASSIVE SQL注入漏洞。 – Lukos
您沒有在代碼中指定'TotalPayment'列。 「RemainingPayment」,「CHQNo」和「TransactionID」列有哪些類型? –