Повторная загрузка из Excel в DataGridView вызывает ошибку - Visual Basic .NET
Формулировка задачи:
Данные загружаю из Excel в DataGridView2 все нормально.
Далее необходимо загрузить в DataGridView2 новый файл из Excel.
Предварительно чистим:
При повторной загрузке не выходя из формы вызывает ошибку строка: da.Fill(dtt) в этом коде:
Решение задачи: «Повторная загрузка из Excel в DataGridView вызывает ошибку»
textual
Листинг программы
Public Class Form1 Dim dtt As DataTable Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click 'Убрать тормоза таблицы GetType(Control).InvokeMember("DoubleBuffered", _ System.Reflection.BindingFlags.SetProperty Or _ System.Reflection.BindingFlags.Instance Or _ System.Reflection.BindingFlags.NonPublic, _ Nothing, _ DataGridView1, _ New Object() {True}) With Me.DataGridView1 ' Параметры таблицы во 2 закладке .DataSource = Nothing .DataSource = LoadDataKey("путь к файлу", "имя листа") .AutoGenerateColumns = True .BorderStyle = BorderStyle.Fixed3D .EditMode = DataGridViewEditMode.EditOnEnter .AllowUserToOrderColumns = True .AllowUserToResizeColumns = True ' Возможность перетаскивать столбец .AllowUserToAddRows = False .RowHeadersWidth = 55 ' Ширина столбца заголовка, самый левый столбец ' Меняем высоту строки заголовков .ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing .ColumnHeadersHeight = 40 .Columns(0).Width = 200 ' Задаем ширину 1 столбца .Columns(0).ReadOnly = True ' Делаем не редактируемым 1 столбец .Columns(1).Width = 50 .Columns(2).Width = 80 ' Выравнивание влево 1 столбца .Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft ' Выравнивание по центру в столбце .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter .Refresh() End With End Sub Private Function LoadDataKey(ByVal iPath As String, ByVal iShtName2 As String) As DataTable Using conn = New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & iPath & "; Extended Properties=""Excel 12.0 Xml; HDR=YES"";") Try : conn.Open() : Catch : MsgBox("Не знаю такой версии Excel") : Return Nothing : End Try Dim command As New OleDb.OleDbCommand("Select * From [" & iShtName2 & "$]", conn) Dim da As New OleDb.OleDbDataAdapter(command) dtt = New DataTable : da.Fill(dtt) conn.Close() Return dtt End Using End Function End Class
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д