Sql server 在vb.net中列出ms sql数据

Sql server 在vb.net中列出ms sql数据,sql-server,vb.net,ado.net,Sql Server,Vb.net,Ado.net,我现在在代码中没有错误,但它似乎不起作用。唯一有效的方法是当我尝试列出所有数据时 但当我试图缩小要列出的数据范围时。我没有得到好的结果。这是我的密码: If ComboBox1.SelectedItem = "School" Then Dim connectionString As String = "Data Source=SENBONZAKURA\SQLEXPRESS;Initial Catalog=testing;User ID=SenbonZakura\Rew;

我现在在代码中没有错误,但它似乎不起作用。唯一有效的方法是当我尝试列出所有数据时

但当我试图缩小要列出的数据范围时。我没有得到好的结果。这是我的密码:

 If ComboBox1.SelectedItem = "School" Then
            Dim connectionString As String = "Data Source=SENBONZAKURA\SQLEXPRESS;Initial Catalog=testing;User ID=SenbonZakura\Rew; Trusted_Connection=True;"

            Dim selectCommand As String

            Dim connection As New SqlConnection(connectionString)

            selectCommand = "select * from student  WHERE (SCHOOL='" & TextBox1.Text & "')"

            Me.dataAdapter = New SqlDataAdapter(selectCommand, connection)



            Dim commandBuilder As New SqlCommandBuilder(Me.dataAdapter)

            Dim table As New DataTable()

            Me.dataAdapter.Fill(table)

            Me.BindingSource1.DataSource = table

            Dim data As New DataSet()

            DataGridView1.DataSource = Me.BindingSource1
END IF

上面的代码不是全部。我省略了那些不相关的。我该怎么做才能使它工作?请帮助,谢谢。

问题很可能是:

其中(SCHOOL='“&TextBox1.Text&'”)

如果你对基本安全原则的公然无知(当你有时间的时候读一下SQL注入),这是一个完整的比较

  • 学校不等于学校
  • 留下/留下的空格是邪恶的
我的标准做法是:

  • TRIM。不确定VB语法,但是说&TextBox1.Text.TRIM()-去掉两端的空格,人们可能只是进入而看不见
  • 不要使用“=”,而要使用“LIKE”。通常(除非有人改变这一点),LINKE不会区分“School”和“School”

获取SQL并在…SQL Manager中解决它。

确切的问题是什么?您写道,它似乎不起作用。即使我在数据库中输入了完全相同的数据,它也会返回零结果