0

我花了大约三周的时间试图找到这方面的信息,但没有成功。与编辑相关的 DGV 设置:只读在 DGV 上为 false 编辑模式是 DGV 上的击键。

代码在这里: http: //pastebin.com/eCv3iBcF

但是,当尝试编辑时,什么也没有发生,框只是从选择中变成颜色;鼠标不会改变以识别文本,击键什么也不做。

这应该做什么(至少在我的脑海中并且根据 tut):打电话给桌子。填充 DGV。允许通过击键编辑所选字段。

4

2 回答 2

2

问题是您将 Bi​​ndingSource 对象的数据源设置为 SQLDataReader 对象。这是一个只读对象。

DataReader 仅限于只读和只进。即从数据库中检索到的信息不能被DataReader修改,DataReader也不能以随机顺序检索记录。相反,DataReader 仅限于按顺序访问记录,从第一个到最后一个,一次一条记录。”

您应该改用 DataAdpater 并填充 DataTable。

然后使用 DataTable 作为 BindingSource 的数据源。

Alternativley,您可以像这样使用 DataReader 打勾:-

  using(SqlDataReader reader = command.ExecuteReader())
            {
                DataTable data = new DataTable();
                data.Load(reader);

            }

希望这可以帮助。

于 2013-04-09T17:20:20.070 回答
0

如下更改您的编码...它将帮助您...

string query = "SELECT * FROM catalog";
using (MySqlConnection con  = new MySqlConnection (connectionString))
{
 con.Open();
 using (MySqlDataAdapter dataAdapter = new MySqlDataAdapter(query , con))
 {
  DataSet ds = new DataSet();
  dataAdapter.Fill(ds);
  dataGridView1.DataSource = ds.Tables[0];
 }
 con.Close();
}
于 2013-04-09T17:31:25.443 回答