簡體   English   中英

我無法從數據庫中獲取總和

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM