vb.net DGV不覆盖数据

本文介绍了一种使用VB.NET从MySQL数据库填充DataGridView的方法。通过创建一个全局变量DataTable并使用MySqlConnection和MySqlDataAdapter,可以有效地从数据库中检索数据并显示在DataGridView控件上,确保数据不会被重复覆盖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      Private DataTable1 As New DataTable   '设成全局变量'''''''''''''''''
      Dim connstr As String = String.Format("server={0};user id={1}; password={2};port={3}; database=test; pooling=true", "ip地址", "root", "123456", "3307")
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim MySqlConn As MySqlConnection
        If Not MySqlConn Is Nothing Then MySqlConn.Close()
        Try
            MySqlConn = New MySqlConnection(connstr)
            MySqlConn.Open()
            Dim Adp1 As New MySqlDataAdapter("select * from ....;", MySqlConn)  
            Adp1.Fill(DataTable1)
            Me.DataGridView1.DataSource = DataTable1
            MySqlConn.Close()
            MySqlConn.Dispose()
        Catch ex As Exception
            MessageBox.Show(ex.ToString)
        End Try
      End Sub

可实现DGV不覆盖数据

Public Sub LoadSelectedCsvFilesToDataGridView() ' 组合日志文件夹路径(Log_Path是全局变量或类字段) Dim logFolder As String = System.IO.Path.Combine(Log_Path, "Log") ' 清空DataGridView准备加载新数据 Form1.DataGridView1.Rows.Clear() Form1.DataGridView1.Columns.Clear() ' 遍历CheckedListBox中所有选中的项(按用户选择顺序) For Each item As Object In Form1.CheckedListBox1.CheckedItems Dim fileName As String = item.ToString() ' 构建完整文件路径 Dim filePath As String = System.IO.Path.Combine(logFolder, fileName) ' 验证文件扩展名(区分大小写) If System.IO.Path.GetExtension(fileName).ToLower() = ".csv" Then ' 调用CSV读取方法 ReadCsvFileToDataGridView(filePath, Form1.DataGridView1) End If Next End Sub Private Sub ReadCsvFileToDataGridView(filePath As String, dgv As DataGridView) ' 使用TextFieldParser解析CSV(自动处理资源释放) Using parser As New Microsoft.VisualBasic.FileIO.TextFieldParser(filePath) ' 设置文件格式为分隔符类型 parser.TextFieldType = FileIO.FieldType.Delimited parser.SetDelimiters(",") ' 指定逗号为分隔符 ' 读取列标题(第一行) If Not parser.EndOfData Then Dim headers As String() = parser.ReadFields() ' 动态添加列到DataGridView For Each header As String In headers ' 检查列是否已存在(避免重复列) If dgv.Columns(header) Is Nothing Then dgv.Columns.Add(header, header) End If Next End If ' 逐行读取数据 While Not parser.EndOfData Try Dim fields As String() = parser.ReadFields() ' 验证数据有效性 If fields IsNot Nothing AndAlso fields.Length > 0 Then ' 添加新行(自动匹配列顺序) dgv.Rows.Add(fields) End If Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException ' 处理格式错误行(可选:记录日志) Console.WriteLine($"跳过格式错误行: {ex.Message}") End Try End While End Using End Sub 只显示1列数据
最新发布
07-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值