【问题标题】:Search data from SQL Server and Display onto textbox and data grid VB.Net从 SQL Server 搜索数据并显示到文本框和数据网格 VB.Net
【发布时间】:2020-10-30 01:39:17
【问题描述】:

我想从 SQL Server 检索数据并显示到 TextboxDataGrid。我希望将请求框中的数据显示到文本框中,并将 leftjoin 表显示在数据网格中。

 con.Open()
    cmd.Connection = con
    cmd.CommandText = "select * from requestbox left join requisitiondata on requisitiondata.requestdata_id = requisitiondata.requestdata_id where request_box = '" & txtsearch.Text & "'"

    cmd.ExecuteNonQuery()

    Dim TABLE As New DataTable

    With da
        .SelectCommand = cmd
        .Fill(TABLE)
    End With


    cbspayment.Text = ("spayment").ToString()
    cbsoption.Text = ("soption").ToString()
    txtto.Text = ("to1").ToString()
    txtsupplier.Text = ("supplier").ToString()
    txtterms.Text = ("terms").ToString()
    txtreference.Text = ("reference").ToString()
    txtfrom.Text = ("from1").ToString()
    txtcharge.Text = ("charge").ToString()

【问题讨论】:

  • Ronel 您似乎不了解 SQL,您似乎在语句中设置了一些 SQL 变量,然后您希望以某种方式将相同的值返回到文本框中。
  • 为什么要调用ExecuteNonQuery,而当您调用Fill 时已经这样做了?
  • 字段request_box属于什么表?
  • NEVER 将字符串与用户输入的 sql 语句连接起来。始终使用参数来避免 sql 注入。
  • 这是什么数据库?我会大胆猜测。访问?

标签: vb.net


【解决方案1】:

如果您只希望数据的某些列显示在网格中,那么您应该将所需的列添加到设计器中的网格中。您可以通过设置其DataPropertyName 来指定网格列应绑定到数据源中的哪一列。然后,如果需要,您也可以将数据绑定到网格和其他控件。举个例子:

  1. 在您的表单中添加 DataGridViewBindingSourceTextBox
  2. 将单个文本框列添加到网格并将其DataPropertyName 设置为"Name"
  3. 为表单的Load 事件创建处理程序并添加以下代码:
Dim table As New DataTable

With table.Columns
    .Add("Name", GetType(String))
    .Add("Description", GetType(String))
End With

With table.Rows
    .Add("One", "First")
    .Add("Two", "Second")
    .Add("Three", "Third")
End With

BindingSource1.DataSource = table
DataGridView1.AutoGenerateColumns = False
DataGridView1.DataSource = BindingSource1
TextBox1.DataBindings.Add("Text", BindingSource1, "Description")

运行项目时,您将看到Name 列的数据显示在网格中,当您选择一行时,您将看到Description 列中的相应值显示在TextBox 中。无论您希望在网格中显示多少列,无论您有多少 TextBoxes 以及如何填充您的 DataTable,您都可以应用相同的原则。

【讨论】:

  • 只想问一下这些行..."One","First","Two","Second","Three","Third"是什么意思
  • @Ronel,没有“意义”。这只是示例数据。 Rows.Add 方法在DataTable 的两列中添加具有两个指定值的新行。实际数据可以是任何东西。我只是选择了一些简单的东西,可以让你看到实际的原理。您的列和数据将由您的数据库查询决定。
猜你喜欢
  • 2017-09-04
  • 2011-02-11
  • 2013-05-10
  • 1970-01-01
  • 2017-06-03
  • 2013-03-23
  • 1970-01-01
  • 2015-01-01
  • 1970-01-01
相关资源
最近更新 更多