数据视图和记录ID c#

本文关键字:ID 记录 视图 数据 | 更新日期: 2023-09-27 18:04:52

我想我需要澄清一下(我的)SqlDataAdapter是如何工作的。我有一个DGV,我用它来显示一个列从MySQL表;然而,当我需要编辑记录时,我需要大多数其他字段,我在另一个窗体中这样做。所以我想我需要一些最佳实践建议:

问题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。

我花了整个周末最好的时间去找一篇文章或博客或其他能证明这一点的东西。列表格式范例。有人能给我指个正确的方向吗?非常感谢社区。

数据视图和记录ID c#

根据经验,您不应该选择所有字段,而应该只选择您需要的字段

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");