我花了大约三周的时间试图找到这方面的信息,但没有成功。与编辑相关的 DGV 设置:只读在 DGV 上为 false 编辑模式是 DGV 上的击键。
代码在这里: http: //pastebin.com/eCv3iBcF
但是,当尝试编辑时,什么也没有发生,框只是从选择中变成颜色;鼠标不会改变以识别文本,击键什么也不做。
这应该做什么(至少在我的脑海中并且根据 tut):打电话给桌子。填充 DGV。允许通过击键编辑所选字段。
我花了大约三周的时间试图找到这方面的信息,但没有成功。与编辑相关的 DGV 设置:只读在 DGV 上为 false 编辑模式是 DGV 上的击键。
代码在这里: http: //pastebin.com/eCv3iBcF
但是,当尝试编辑时,什么也没有发生,框只是从选择中变成颜色;鼠标不会改变以识别文本,击键什么也不做。
这应该做什么(至少在我的脑海中并且根据 tut):打电话给桌子。填充 DGV。允许通过击键编辑所选字段。
问题是您将 BindingSource 对象的数据源设置为 SQLDataReader 对象。这是一个只读对象。
DataReader 仅限于只读和只进。即从数据库中检索到的信息不能被DataReader修改,DataReader也不能以随机顺序检索记录。相反,DataReader 仅限于按顺序访问记录,从第一个到最后一个,一次一条记录。”
您应该改用 DataAdpater 并填充 DataTable。
然后使用 DataTable 作为 BindingSource 的数据源。
Alternativley,您可以像这样使用 DataReader 打勾:-
using(SqlDataReader reader = command.ExecuteReader())
{
DataTable data = new DataTable();
data.Load(reader);
}
希望这可以帮助。
如下更改您的编码...它将帮助您...
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();
}