c# - DataGridView 不进入编辑模式

标签 c# winforms datagridview edit

我这样填充DataGridView:

DataTable dt = new DataTable();

using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.MARKETConnectionString))
{
     conn.Open();

     String SQL = @"select INN, Idx, Adr, 'P' as Src from AdrP where Idx is null 
                    union all
                    select INN, Idx, Adr, 'K' as Src  from AdrK where Idx is null";
     SqlCommand cmd = new SqlCommand(SQL, conn);
     var RD = cmd.ExecuteReader();
     if (RD.HasRows) dt.Load(RD);
     dataGridView2.DataSource = dt;
}

但是 DataGridView 不会通过双击进入编辑模式。如果我在 SQL 查询中删除 'Union All' ,则双击可以正常工作(在编辑模式下切换 DataGridView)。但我需要使用 Union 从两个表中进行选择。

我尝试在 DataGridView DoubleClick 事件中调用 dataGridView2.BeginEdit(true) 。但这没有帮助。

使用从两个表中选择的数据源来编辑 DataGridView 的正确方法是什么?

最佳答案

在这种情况下不要使用 DataReader。使用适配器代替:

using (SqlDataAdapter adp = new SqlDataAdapter(SQL, conn)) {
  adp.Fill(dt);
}

关于c# - DataGridView 不进入编辑模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21091590/

相关文章:

c# - 如何从 mongo 集合中获取最后 N 个文档?

c# - 如何在sql server 2008中使用新创建的服务器名登录

c# - 将 datagridview 从一种形式传递到另一种形式 C#

c# - Microsoft 标准计算器中使用的变量类型

c# - 创建可以匹配两个数据网格中的项目的程序的想法

c# - VS2022配置Azure keyvault看不到本地secrets.json

C# DateTimePicker DataBinding Parse 事件不工作

c# - MVP,类应该在哪里创建?

c# - DataGridView 控件必须绑定(bind)到要排序的 IBindingList 对象

C# DataGridView 添加行 - 验证时,我如何知道该行是新行且尚未提交?