[英]I can't get the total sum from the database
我試圖從我的數據庫中獲取罰款總額並將其顯示給我的lblFine.Text
,但他們總是一個錯誤:
System.Data.SqlClient.SqlException: '將 varchar 值 'Student ID' 轉換為數據類型 int 時轉換失敗。
這是我的代碼:
public void CountFine()
{
cn.Open();
cm = new SqlCommand("SELECT SUM(totalFine) FROM tblFine where studentID = '" + lblStudID.Text + "'", cn);
lblFine.Text = cm.ExecuteScalar().ToString();
cn.Close();
}
任何幫助,將不勝感激
似乎您的數據庫中的studentID
類型是整數,因此您需要將lblStudentId
的值轉換為 int。 然而,這種字符串連接容易受到 SQL 注入攻擊。 您應該始終使用參數化查詢來避免SQL 注入並消除錯誤:
cm = new SqlCommand("SELECT SUM(totalFine) FROM tblFine where studentID = @studentId", cn);
cm.Parameters.AddWithValue("@studentId", Convert.ToInt32(lblStudID.Text));
雖然直接指定類型並使用 Value 屬性比 AddWithValue 更好:
cm.Parameters.Add("@studentId", SqlDbType.Int).Value = Convert.ToInt32(lblStudID.Text);
在此處閱讀更多信息: https : //blogs.msmvps.com/jcoehoorn/blog/2014/05/12/can-we-stop-using-addwithvalue-already/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.