【问题标题】:Search by datagridview1 column1 values按 datagridview1 column1 值搜索
【发布时间】:2018-05-08 10:50:09
【问题描述】:

我使用此代码通过文本框搜索以获取 ID 的相关数据

Dim connetionString As String
Dim cnn As SqlConnection
connetionString="DataSource=IP;InitialCatalog=DB;UserID=sa;Password=password"

cnn = New SqlConnection(connetionString)

Dim com As String = "SELECT * FROM Table WHERE ID= '" & TextBox1.Text & "'"
Dim Adpt As New SqlDataAdapter(com, cnn)

Dim ds As New DataSet()

Adpt.Fill(ds, "Table")

DataGridView1.DataSource = ds.Tables(0)

我想做什么,我需要做相同的代码,但使用 datagridview column1

解释: 我已经添加了将数据上传到 datagridview 的按钮,数据包括 ID 我需要按这些 ID 批量搜索,包含在 datagridview 中,然后将收入数据发布到另一个 datagridview,

提前致谢。

【问题讨论】:

  • 您需要阅读、理解并开始使用参数化查询。这对 sql 注入很开放。我的朋友鲍比桌喜欢这种东西。 bobby-tables.com
  • 你想在这里做什么?

标签: sql sql-server vb.net visual-studio


【解决方案1】:

首先,我认为您应该更正现有代码以使用 SQL 参数。

Dim com As New SqlCommand("SELECT * FROM Table WHERE ID= @Id;", cnn)
com.Parameters.Add("@Id", SqlDbType.VarChar).Value = TextBox1.Text
Dim Adpt As New SqlDataAdapter(com)

现在使用第一行第一列中的值

Dim strId As String = DataGridView1.Rows(0).Cells(0).Value.ToString
Dim com2 As New SqlCommand("SELECT * FROM Table WHERE ID= @Id;", cnn)
com2.Parameters.Add("@Id", SqlDbType.VarChar).Value = strId
Dim Adpt2 As New SqlDataAdapter(com2)

我不得不猜测数据类型。请检查您的数据库以获得正确的类型。我猜它是某种类型的字符串,因为您将它用单引号括起来。

【讨论】:

  • 非常感谢它现在可以正常工作,我只有一个问题,我需要使用第一列值中的值而不是第一行,我如何编辑此代码来执行此操作?提前致谢。 @玛丽
  • For Each row As DataGridViewRow In DataGridView1.Rows 但您无法在迭代时更改 DataGridView。将值保存到其他内容并在循环后使用它们。
猜你喜欢
  • 1970-01-01
  • 2017-03-21
  • 1970-01-01
  • 1970-01-01
  • 2016-12-10
  • 2010-09-23
  • 2019-03-11
  • 2021-09-09
相关资源
最近更新 更多