2013-04-24 74 views
0

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

下面是到目前为止我的代码,但似乎无法工作,在这个有些变量是全球性的,

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 
+0

这是什么(数据库)? – 2013-04-24 10:29:22

+0

(数据库)是我不能缝编程的代码,所以我删除了它,这样有人可以更容易编程一些东西 – 2013-04-24 10:31:24

回答

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() 

我会根据你正在寻找这个问题的具体ID删除LIKE,而是查询。这意味着可能将问题ID存储在表单上。我也会参数化查询,而不是将其构建为字符串;否则您将面临潜在的SQL注入攻击。

+0

Hello Simon,对不起,我在午休时间很长的延迟。这行SqlDataReader myReader = myCommand.ExecuteReader() 根本不工作,只是出现错误说生成方法sub谢谢你的帮助 – 2013-04-24 12:11:05

+0

糟糕的是,这是c#语法,编辑答案。正如我所说,自从我编写任何VB以来已经很长时间了!你可能需要修复一些错别字。 – Simon 2013-04-24 14:59:33

+0

嗨西蒙,没关系,谢谢你的帮助,但那里接缝是一个错误离开我的命令没有宣布。请指教? – 2013-04-24 15:24:31