DataGridView和记录ID C#

DataGridView和记录ID C#,c#,database,datagridview,sqldataadapter,C#,Database,Datagridview,Sqldataadapter,我想我需要澄清一下(我的)SqlDataAdapter是如何工作的。我有一个DGV,用于显示MySQL表中的一列;但是,当我需要编辑记录时,我需要大多数其他字段,我在另一个winform中进行编辑。所以我想我需要一些最佳实践建议: 问题1:绑定到数据源时:是否需要选择要在表单中编辑的所有字段 string query = "SELECT * FROM cusdata"; cusAdapter = new MySqlDataAdapter(query,pppDB.sqlConn);

我想我需要澄清一下(我的)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");

这是一篇关于C#中基本crud的好文章,感谢您的回复。我确实了解CRUD的基础知识,以及如何将参数化查询发送到后端;但是,我希望通过使用datatable将数据绑定到datagridview并使用SqlDataAdapter对后端执行更新来处理一切。我需要真实世界的文章/例子来说明其他人是如何做到这一点的。