DataGridViewComboboxCell值无效,见代码

canbetter 2016-05-09 07:40:08
public void OnFormLoaded(object sender,EventArgs args)
{

DataTable ts = new DataTable();
ts.Columns.Add("state");
ts.Columns.Add("name");

DataRow row = ts.NewRow();
row["state"] = 0;
row["name"] = "带上架";
ts.Rows.Add(row);

row = ts.NewRow();
row["state"] = 1;
row["name"] = "正常";
ts.Rows.Add(row);

DataGridViewComboBoxColumn comboboxColumn = new DataGridViewComboBoxColumn();
comboboxColumn.DataPropertyName = "state";
comboboxColumn.HeaderText = "状态";
comboboxColumn.DisplayMember = "name";
comboboxColumn.ValueMember = "state";
comboboxColumn.DataSource = ts;

string connStr = "server=10.1.35.92;user=root;database=test;port=3306;password=123456;Allow Zero Datetime=True";
MySqlConnection conn = new MySqlConnection(connStr);
MySqlDataAdapter ada = new MySqlDataAdapter("select state from items limit 0,10", conn);
/** state 只有 0,1两种状态,数据库类型 int **/

DataSet set = new DataSet();
ada.Fill(set);

this.dataGridView1.Columns.Add(comboboxColumn);
this.dataGridView1.AutoGenerateColumns = false;
this.dataGridView1.DataSource = set.Tables[0];
}
总是报: DataGridViewComboboxCell值无效 错误 并且cell显示的也不是汉字,还是数字,当点击下来的时候才会显示汉字,一旦选中,就变回选中的数字了
...全文
563 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
canbetter 2016-05-11
  • 打赏
  • 举报
回复
找到问题,数据类型不一致,数据库是uint32 添加的int32,导致这个问题 ts.Columns.Add("state"); 修改成 ts.Columns.Add("state",typeof(Uint32)); 就OK了
大鱼> 2016-05-09
  • 打赏
  • 举报
回复
我觉得你的倒数第三行,添加列表头的时候有问题。
南天空 2016-05-09
  • 打赏
  • 举报
回复
你把ts拆开成两列试试,一列显示name一列显示状态,分别添加看看。你的ts可能不能被datagridview的一列识别

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧