gpt4 book ai didi

VB.Net Datagridview转数据表

转载 作者:行者123 更新时间:2023-12-05 00:27:44 26 4
gpt4 key购买 nike

我想根据 5 列数据表创建一个数据表。另外,我想删除最后一列(它是一个图像列)。

基本上,我想要的是(伪代码)

datatable = datagridview.datasource

我试过这个,但失败了:
Dim dt As New DataTable
dt = TryCast(dgvCarAccidentInjury.DataSource, DataTable)

和这个,
Dim dt As New DataTable(dgvCarAccidentInjury.DataSource)

我又失败了。
我在 c# 专栏上看到了这个,但我不知道如何将其转换为 vb.net,也许这是解决方案,但我不知道 VB 中的语法。
DataTable data = (DataTable)(dgvMyMembers.DataSource);

我可以通过手动循环来完成,但是有没有像 C# 这样的简单方法?

编辑
我通过执行这行代码手动设置了我的 datagridview 的数据,
dgvCarAccidentInjury.Rows.Add(New String() {"test1", "test2", "test3", "test4"})

此外,还有第 5 列(图像列),实际上它是空的。对不起,我错过了这个重要的点。

编辑

这个问题的解决方案是这样,通过手动循环。
    Dim dt As New DataTable
Dim r As DataRow

dt.Columns.Add("a", Type.GetType("System.String"))
dt.Columns.Add("b", Type.GetType("System.String"))
dt.Columns.Add("c", Type.GetType("System.String"))
dt.Columns.Add("d", Type.GetType("System.String"))

For i = 0 To dgvCarAccidentInjury.Rows.Count - 1
r = dt.NewRow
r("a") = dgvCarAccidentInjury.Item(0, i).Value.ToString
r("b") = dgvCarAccidentInjury.Item(1, i).Value.ToString
r("c") = dgvCarAccidentInjury.Item(2, i).Value.ToString
r("d") = dgvCarAccidentInjury.Item(3, i).Value.ToString
dt.Rows.Add(r)
Next

其他解决方案:
Dim dt As New DataTable
dt = TryCast(yourdatagridview.DataSource, DataTable)

最佳答案

你的问题不是 Actor :

 dt = TryCast(dgvMyMembers.DataSource, DataTable)

但是你的 DataSource不是 DataTable但是一个 字符串数组 :
dgvCarAccidentInjury.Rows.Add(New String() {"test1", "test2", "test3", "test4"})

因此,请确保您的 DataGridView已正确连接 DataTable source 第一 , 喜欢:
dgvMyMembers.DataSource = dtSourceHere

大概做你的 Form_Load()
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

dgvMyMembers.DataSource = dtSourceHere

End Sub

如果要将字符串添加到 DataGridView,最好创建 DataTable 添加这些字符串,例如:
    Dim dt As New DataTable
dt.Columns.Add("Names", GetType(String))

dt.Rows.Add("test1")
dt.Rows.Add("test2")
dt.Rows.Add("test3")
dt.Rows.Add("test4")

然后将其设为 DataSource您的 DataGridView :
    dgvMyMembers.DataSource = dt

您可以稍后在 TryCast() 上执行此操作你想要的:
    Dim dtNew As New DataTable
dtNew = TryCast(dgvMyMembers.DataSource, DataTable)

关于VB.Net Datagridview转数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20209241/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com