按Multi值填充DataGridView

时间:2014-02-16 18:20:35

标签: vb.net winforms datagridview

我需要通过Multi selction填充DataGridview 我正在尝试通过此代码填充dataGridview并且它可以工作但是当我输入时 1,2,3它得到了正确的值但是当我输入700时它得到7而不是700 当我键入1,2,3,10时,它获得1,2,3 所以我怎么能输入1,2,3,10,700并用这些数据填充datagridview 感谢

Imports System.Data
Imports System.Data.OleDb
Imports System.Text
Public Class Form1
    Public OLECON As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\SCHEDULES_DB.accdb;Jet OLEDB:Database Password=Admin@2014;")
    Dim dt As New DataTable
    Dim da As New OleDbDataAdapter
    Dim cmd As New OleDbCommand

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim sb As New StringBuilder()

        For Each fieldId As String In TextBox1.Text

            sb.Append("'").Append(fieldId).Append("',")
        Next

        Dim fieldList As String = sb.ToString().TrimEnd(","c)

        Dim SQLStr As String = "Select * from Tbl_Employee where EmpID in (" & fieldList & ") order by EmpID"

        dt.Clear()
        cmd.Parameters.Clear()

        cmd.CommandText = SQLStr

        cmd.Connection = OLECON
        da.SelectCommand = cmd

        da.Fill(dt)
        DataGridView1.DataSource = dt

    End Sub

End Class

1 个答案:

答案 0 :(得分:0)

你正在按每个角色分割文字,这不是我认为你想要做的。看起来你试图在逗号分隔的字符串中的每个项目周围放置单引号,所以它应该看起来像这样,用逗号分隔字符串的内容:

Dim items As New List(Of String)
For Each s As String In TextBox1.Text.Split(",")
  items.Add("'" & s & "'")
Next
Dim fieldList As String = String.Join(",", items.ToArray)

EmpID听起来像数字,在这种情况下,单引号不是必需的。