2014-02-16 40 views
1

我需要填充DataGridview多选择 我想填充dataGridview通过此代码,它的工作,但是当我键入 1,2,3它获得正确的值,但是当我键入700它得到7不是700 当我键入1,2,3,10它得到1,2,3 所以我怎么可以输入1,2,3,10,700以及与这些数据填充的DataGridView 感谢通过多值填充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 [email protected];") 
    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 

回答

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声音并且看起来像数字,在这种情况下,单引号不是必需的。

+0

100%右许多谢谢 –