美好的一天,希望大家都好:)
我是一年級學生,我們剛開始接觸表單。我想DataGridview使用按鈕將資料從我的資料庫更新到我的資料庫,但我必須在資料處理程式中創建一個更新方法class并在我的表單加載中呼叫它,這是我迄今為止嘗試過的。
資料處理器類:
public void UpdateStudent(int number, string name, string surname, string dob, string gender, int phone, string address)
{
try
{
//string updateQuery = @"UPDATE Student SET number='" number "'name='" name "'surname='" surname "'dob='" dob "'gender'" gender "'phone='" phone "'address='" address "'";
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.ExecuteNonQuery();
MessageBox.Show("updated successfully....");
}
catch (Exception ex)
{
MessageBox.Show("not updated!", ex.Message); m
}
finally
{
conn.Close();
}
}
表單加載時的更新按鈕:
DataHandler dh = new DataHandler();
dh.UpdateStudent(int.Parse(txtStuID.Text), txtStuName.Text, txtStuSurname.Text,txtStuDOB.Text,txtStuGender.Text, int.Parse(txtStuNo.Text), txtStuAddress.Text);
uj5u.com熱心網友回復:
這是您需要初始化的方式SqlCommand:
new SqlCommand(queryString, connection);
您錯過了傳遞任何引數。您需要傳遞updateQueryasqueryString并且您還需要一個正確的連接字串。
uj5u.com熱心網友回復:
我認為將您帶到這里的實際問題是您的 SQL 無效的幾個關鍵問題。然而,話雖如此,關于SQL注入的評論是絕對正確的,你最好學習引數化SQL。
跳出來的第一件事是您的引數需要以逗號分隔才能成為有效的 SQL。第二件事是,您需要使用 WHERE 子句標識要更新的行,您當前的 SQL 陳述句將更新表中的每條記錄,而不是單個記錄。基本上,您的“數字”欄位不應該在要更新的列串列中,它需要移動到您的 WHERE 子句中。
以下不是您家庭作業的完整解決方案,而是已更正問題的 SQL 片段。在學習程序中,您可以做的一件事是嘗試讓您的 SQL在您的程式之外編譯和運行,然后在您有了作業陳述句后在您的程式中實作它。
UPDATE Student SET name = 'John', surname = 'Doe' WHERE number = 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/348038.html
標籤:C# sql-server winforms 数据网格视图 数据处理
