首页 文章

Datagridview发送文本而不是值为Combobox更新

提问于
浏览
0

我有一个绑定到DataSet的Datagridview(来自我的数据库的视图) . 在我的更新函数中,我定义了一个UpdateCommand,它接受所有列并将它们发送到数据库中的参数 . 像这样:

UPDATE       Data.DealDetails
SET                MoveFromID = @MOVEFROM, ProductID = @PRODUCT, MoveToID = @MOVETO,         ScheduledVolume = @VOL, TransportID = @TRANS, 
                     ScheduledDate = @DATE
WHERE        (DetailNo = @DETAILNO) AND (DealID = @DEAL)

所以我将它映射到我的数据库列,一切正常,直到我将数据集绑定到我的数据网格视图中的组合框单元格 . 在这种情况下,我有一个显示成员(A DESC)和一个ID,我显然需要将ID发送到数据库,因此将该列设置为INT . 当我实际调用我的更新功能时出现问题 . Tt(正确地)抛出错误,因为它无法将字符串转换为int(很可能是因为它查看了组合框的文本而不是值) . 现在,如果我从下拉列表中选择一个值并单击另一个单元格,则会显示值成员,并且更新运行正常 .

My Question:

如何将datagridviewcell的值发送到更新函数而不是文本 .

2 回答

  • 0

    我不认为这可以在设计器中完全完成...假设您将datagridview绑定到数据集并将主表的名称绑定为datagridview.DataMember ...然后您可以执行类似这样的操作(假设组合框列是网格中的第三列):

    DataGridViewComboBoxColumn cb = ((DataGridViewComboBoxColumn)dataGridView1.Columns[2]);
    cb.DataSource = dataSet1.Lookup;
    cb.ValueMember = "Id";
    cb.DisplayMember = "Name";
    

    生成的dataadapter的更新命令开箱即用(我试过一个简单的例子)...

  • 0

    PrfctByDsgn给出了一个很好的响应,但最终我发现问题是我 grab 了DataError事件只是为了让它沉默(这将学习我)与组合框的混乱 . 我首先得到了错误,因为我的View将字符串值发送到组合框而不是它需要的数值 .

相关问题