Visual C#DataGridView编辑;设置了所有可能的编辑选项;不会编辑
我花了大约三个星期的时间试图找到这方面的信息,但没有成功。 与编辑相关的DGV设置: DGV上的readonly为false 编辑模式是在DGV上击键 代码如下: 然而,当试图编辑时,什么也没有发生,框只是从选择变成颜色;鼠标不会变为识别文本,击键什么也不做 这应该做什么(至少在我的头脑中,根据图坦卡蒙的说法): 叫桌子。 填充DGV。Visual C#DataGridView编辑;设置了所有可能的编辑选项;不会编辑,c#,mysql,datagridview,phpmyadmin,C#,Mysql,Datagridview,Phpmyadmin,我花了大约三个星期的时间试图找到这方面的信息,但没有成功。 与编辑相关的DGV设置: DGV上的readonly为false 编辑模式是在DGV上击键 代码如下: 然而,当试图编辑时,什么也没有发生,框只是从选择变成颜色;鼠标不会变为识别文本,击键什么也不做 这应该做什么(至少在我的头脑中,根据图坦卡蒙的说法): 叫桌子。 填充DGV。 允许通过击键对选定字段进行编辑。问题在于您正在将BindingSource对象的数据源设置为SQLDataReader对象。这是一个只读对象 DataRead
允许通过击键对选定字段进行编辑。问题在于您正在将BindingSource对象的数据源设置为SQLDataReader对象。这是一个只读对象 DataReader仅限于只读和转发。就是, 用户无法修改从数据库检索到的信息 DataReader,DataReader也不能以随机顺序检索记录。 相反,DataReader仅限于访问中的记录 从第一条记录到最后一条记录的顺序,一次一条记录 时间。” 您应该改为使用DataAdapter并填充DataTable 然后使用DataTable作为BindingSource的数据源 Alternativley,你可以用你的数据阅读器打勾如下:-
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();
}
绑定源不使其为只读,DataReader对象为只读的事实使其不可编辑。您的代码可以工作,但无需删除BindingSource。谢谢,此代码和上面提供的信息现在可以编辑DGV。