【问题标题】:VB.NET-A way to insert rows into datagrid or datatableVB.NET-一种将行插入数据网格或数据表的方法
【发布时间】:2013-07-30 17:26:23
【问题描述】:

嗨,我又一次被困在中间,我需要一些指针……我需要一种方法在 for 循环中填充数据网格……

Dim rs As SqlCommand
Dim dt As New DataTable
For Each line As String In RichTextBox1.Lines
query = "myquery '" & RichTextBox1.Lines(i).ToString & "'"
rs = New SqlCommand(query, Module1.dtsrv_conn)
dt.load(rs.Executereader)
        If i < 1 Then
            DataGridView1.DataSource = dt                
        Else
            datagridview1.rows.Add(rs.ExecuteReader)
        End If
        i = i + 1
    Next

在 RichTextBox 中将输入多行文本,每行需要与数据库中的值进行比较,结果表需要在 datagrid 中显示...我尝试将新查询的行直接添加到 datagrid 但它抛出异常所以我尝试向数据表添加新行并稍后加载数据网格,但我找不到方法....

【问题讨论】:

    标签: vb.net datagrid datatable richtextbox


    【解决方案1】:

    如果我理解您的问题不是很清楚,则用户正在输入您要针对数据库中的行查询的值,如果它们存在,则显示一些相应的数据或消息。

    听起来您想要做的是将数据网格绑定到数据源,在我的示例中是内存数据表,然后通过 DataGridView1.CellFormatting 拦截数据绑定以相应地比较/修改您的数据。

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    
        Dim sqlConnection As SqlConnection
        Dim sqlConnectionString As String = "YourConnectionString"
        Dim sqlDataAdapter As SqlDataAdapter
        Dim dataTable As New DataTable
        Dim sqlCommand As SqlCommand
        Dim sqlString As String
        Try
            sqlString = "SELECT * FROM YourTable" 'if user input values are filters, loop through and append them in WHERE clause
            sqlConnection = New SqlConnection(sqlConnectionString)
            sqlCommand = New SqlCommand(sqlString, sqlConnection)
            sqlConnection.Open()
            sqlDataAdapter = New SqlDataAdapter(sqlCommand)
            sqlDataAdapter.Fill(dataTable)
            sqlConnection.Close()
    
            DataGridView1.DataSource = dataTable
    
        Catch ex As Exception
            'Handle error
        End Try
    
    End Sub
    
    Private Sub DataGridView1_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
    
        If Me.DataGridView1.Columns(e.ColumnIndex).Name = "YourColumnNameToCompare" Then
            If e.Value IsNot Nothing Then
                'do your comparison to user input text here and if necassary change the value like so..
                For Each line In RichTextBox1.Lines
                    If line = e.Value Then
                        e.Value = "Value modified"
                        Exit For
                    End If
                Next
    
                e.FormattingApplied = True
            End If
        End If
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多