[英]get ID of record from datagridview in c# and show the data to another form
[英]DataGridView and Record ID C#
我想我需要澄清(My)SqlDataAdapter的工作方式。 我有一個DGV,用於顯示MySQL表中的一列; 但是,當我需要編輯記錄時,我需要其他大多數字段,並且需要在另一個winform中進行。 所以我想我需要一些最佳實踐建議:
問題1:綁定到數據源時:是否需要選擇要在表單中編輯的所有字段?
string query = "SELECT * FROM cusdata";
cusAdapter = new MySqlDataAdapter(query,pppDB.sqlConn);
cusAdapter.Fill(mainSet,"cusdata");
dgv_cusData.DataSource = mainSet.Tables["cusdata"]
問題2:我在網上看到很多關於僅選擇要在DGV中顯示的字段的信息,但是如果我編輯該數據,適配器將如何確切知道后端正在更新的記錄?
我想我對不同的方法有點困惑,我需要一些指導。 我想要一個datagridview,可以在其中顯示單個列(“客戶名稱”)。 我希望能夠以另一種形式編輯客戶記錄,並在成功完成數據庫操作后使DVG刷新新信息。
我在今天整個周末的大部分時間里都找到了一篇文章或博客,或者確實能證明這一點的東西。 列表形式范式。 有人可以指出正確的方向嗎? 非常感謝社區。
根據經驗,您不應選擇所有字段,而應僅選擇所需的字段
Select CustId, CustName, CustAddress, CustPhone from cusdata
這將影響性能。
當您編輯數據時,可以使用以下代碼:
string connectionString = "[Put your connection string here]";
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand("UPDATE cusdata SET CustName=@CustName, CustAddress=@CustAddress WHERE CustId=@CustId", conn))
{
cmd.Parameters.AddWithValue("@CustId", 1);
cmd.Parameters.AddWithValue("@CustName", "Name Input");
cmd.Parameters.AddWithValue("@CustAddress", "Address input");
int rows = cmd.ExecuteNonQuery();
//rows number of record got updated
}
}
這部分代碼使您可以指定要在表中更新的字段和數據
cmd.Parameters.AddWithValue("@CustId", 1);
cmd.Parameters.AddWithValue("@CustName", "Name Input");
cmd.Parameters.AddWithValue("@CustAddress", "Address input");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.