2013-10-21 38 views
0

嗨,大家好,我再次卡住了。我想從我的datagridview編輯一個選定的行,並使用文本字段中的新信息替換dgv中的數據。我設法讓它改變數據集中的所有數據。所以我所要求的就是如何編寫代碼,以便只編輯選定的行。c#和sql更新數據集從一個按鈕點擊

private void btnEdit_Click(object sender, EventArgs e) 
{ 
    SqlConnection con = new SqlConnection(constring); 
    SqlDataAdapter da = new SqlDataAdapter(); 
    da.UpdateCommand = new SqlCommand(String cmdUpdate = @"update Customer set firstName = @firstName, surname = @surname, email = @email, phonenumber = @phone, mobileNumber = @mobile"; 
    , con); 
    da.UpdateCommand.Parameters.Add("@firstName", SqlDbType.VarChar).Value = textFirstName.Text; 
    da.UpdateCommand.Parameters.Add("@surname", SqlDbType.VarChar).Value = textSurname.Text; 
    da.UpdateCommand.Parameters.Add("@email", SqlDbType.VarChar).Value = textEmail.Text; 
    da.UpdateCommand.Parameters.Add("@phone", SqlDbType.VarChar).Value = textPhone.Text; 
    da.UpdateCommand.Parameters.Add("@mobile", SqlDbType.VarChar).Value = textMobile.Text; 
    da.UpdateCommand.Parameters.Add("@ID", SqlDbType.Int).Value = customerDataSet.Customer[0].ID; 

    con.Open(); 
    da.UpdateCommand.ExecuteNonQuery(); 
    MessageBox.Show("Customer Edited"); 
    con.Close(); 
} 
+0

你是什麼'cmdUpdate'貌似更新的行 ? –

+0

爲什麼不簡單地更改數據集中的數據行,並將其放入DataAdapter的Update方法中? – Ralf

+0

拉爾夫我對此完全陌生,所以不知道該怎麼做。我一直在關注一些在線教程,並隨時瞭解情況。對不起 – Kentao

回答

1

更新查詢會更新整個表,你應該使用WHERE語句在此查詢與電流ID

update Customer 
set firstName = @firstName, 
    surname = @surname, 
    email = @email, 
    phonenumber = @phone, 
    mobileNumber = @mobile 
WHERE [email protected] 
+0

感謝它現在正在更新行[0],但我可以有一個發揮,看看我能否得到它的工作。再次感謝 – Kentao

相關問題