Я хотел создать datatable на основе 5 столбцов. Кроме того, я хотел бы удалить последний столбец (это столбец изображения).
VB.Net Datagridview to Datatable
В принципе, то, что я хотел, чтобы это (псевдокод)
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#?
EDIT Я поставил данные моего DataGridView вручную, выполнив эту строку кода,
dgvCarAccidentInjury.Rows.Add(New String() {"test1", "test2", "test3", "test4"})
Кроме того, есть пятая колонна (колонна изображение), на самом деле это пустой. Извините, я пропустил этот важный момент.
РЕДАКТИРОВАТЬ
решение этой проблемы заключается в следующем, вручную петли.
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)
Можете ли вы показать нам, как вы установили Datasource? – OneFineDay
Я уже его отредактировал .. hmmm – Codemunkeee
Да, и там в лжи проблема. У вас нет DataTable, чтобы вытащить из DataGridView. – OneFineDay