【问题标题】:VB.NET Exception Occurs When Trying To View DataGridView尝试查看 DataGridView 时出现 VB.NET 异常
【发布时间】:2011-11-07 20:47:04
【问题描述】:

我有一个非常简单的表可以访问。数据使用 OLEDB 适配器从 VB.NET 存储。我有第二个表单,它只有一个 DataGridView,它是使用 VS2010 从“数据源”窗口拖放/拖放的。

第一次尝试查看窗口时没有显示数据,第二次出现异常并关闭程序。

这是自动生成的代码:

Public Class ViewSent

Private Sub SentBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SentBindingNavigatorSaveItem.Click
    Me.Validate()
    Me.SentBindingSource.EndEdit()
    Me.TableAdapterManager.UpdateAll(Me.DbDataSet)
End Sub

Private Sub ViewSent_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    'TODO: This line of code loads data into the 'DbDataSet.Sent' table. You can move, or remove it, as needed.
    Me.SentTableAdapter.Fill(Me.DbDataSet.Sent)


 End Sub

End Class

我遇到问题的特定列是“文本”格式的列,插入的数据是:

cmd2.Parameters.Add("Time", OleDbType.VarChar).Value = DateTime.Now.ToString().Trim()

在单击 Form.ShowDialog() 按钮后的立即窗口中会出现以下消息: System.Data.dll 中出现了'System.ArgumentException' 类型的第一次机会异常

此外,数据不会加载到 datagridview 中。

关闭窗口然后单击相同的按钮后(根本没有更改数据)出现此错误: 输入字符串的格式不正确。无法在时间列中存储 。预期类型是 Int32。

【问题讨论】:

  • 数据存储中该列的数据类型是什么?
  • 数据类型为文本,存储为文本:md2.Parameters.Add("Time", OleDbType.VarChar).Value = DateTime.Now.ToString().Trim()。如果是存储数据的问题,那么插入时会出现此问题,而不是显示数据的问题。

标签: database vb.net visual-studio-2010 datagridview oledb


【解决方案1】:

我认为 Givelasdougmore 想说的是,您不应该在数据库中使用“时间”“更新”“删除”之类的词作为列名

尝试将列名“时间”更改为“创建日期时间”之类的名称或类似名称。那么一切都应该正常

【讨论】:

  • 感谢您的帮助,我之前更改了列名,然后重新配置了数据源,但每次它仍然获得时间的列名,直到我最终重新启动我的电脑并且它工作正常。
【解决方案2】:

确保数据类型与数据库中的数据类型以及数据集中的数据类型匹配。

【讨论】:

  • 数据类型为文本,存储为文本:md2.Parameters.Add("Time", OleDbType.VarChar).Value = DateTime.Now.ToString().Trim()。跨度>
猜你喜欢
  • 2018-04-30
  • 2020-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-01
  • 2017-07-08
相关资源
最近更新 更多