0

我正在为一个在线表单开发一个项目,我似乎无法找到如何从 SQL 数据库中获取值并根据字符串验证它,例如 Database = A 和 TextBox.text = A 中的 Q1

下面是我到目前为止的代码,但似乎无法工作,其中的一些变量是全局的,

 Dim Question As String = "Q" & count
 Dim textVal As String = TextBox.Text
 Dim conn As SqlClient.SqlConnection = New SqlClient.SqlConnection
 Dim dbSource As String = "Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\ben.miles\documents\visual studio 2012\Projects\WebTraningQuestions\WebTraningQuestions\App_Data\Usertest.mdf"
 Dim ds As New DataSet
 Dim sql As String = "SELECT FROM SAP"
 Dim da As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(sql, conn)
 conn.ConnectionString = dbSource
 Dim SqSearch As String = "%" & textVal & "%"
 Dim sqlQ1 As String = sql & " WHERE Questions LIKE SqSearch"
 Dim cmd1 As New SqlCommand(sqlQ1, conn)
 conn.Open()

'This is where I cant get my code right but if you see below. I would like it something like this.

 If TextBox.Text = (database) Then
    Label.Text = "Correct"
    Label.ForeColor = Drawing.Color.Green
 Else 
    Label.Text = "Wrong"
    Label.ForeColor = Drawing.Color.Red
 End If
4

1 回答 1

0

您可以使用 DataReader 来检索值,例如(空气代码,自从我做任何 VB 以来已经有一段时间了):

Dim Question As String = "Q" & count
Dim textVal As String = TextBox.Text
Dim conn As SqlClient.SqlConnection = New SqlClient.SqlConnection
Dim dbSource As String = "Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\ben.miles\documents\visual studio 2012\Projects\WebTraningQuestions\WebTraningQuestions\App_Data\Usertest.mdf"
Dim ds As New DataSet
Dim sql As String = "SELECT [fields..] FROM SAP"
Dim da As SqlClient.SqlDataAdapter = New SqlClient.SqlDataAdapter(sql, conn)
conn.ConnectionString = dbSource
Dim SqSearch As String = "%" & textVal & "%"
Dim sqlQ1 As String = sql & " WHERE Questions LIKE SqSearch"
Dim cmd1 As New SqlCommand(sqlQ1, conn)
conn.Open()

Dim myReader AS SqlDataReader = cmd1.ExecuteReader()

If myReader.HasRows Then
   myReader.Read()
   If TextBox.Text = (myReader.GetString(col_of_field)) Then
      Label.Text = "Correct"
      Label.ForeColor = Drawing.Color.Green
   Else 
      Label.Text = "Wrong"
      Label.ForeColor = Drawing.Color.Red
   End If
 End If

 myReader.Close()

我会删除 LIKE,而是根据您要查找的问题的特定 ID 进行查询。这意味着可能将问题 ID 存储在表单上的某个地方。我还将参数化查询而不是将其构建为字符串;否则,您将面临潜在的 SQL 注入攻击。

于 2013-04-24T10:36:17.007 回答