【发布时间】:2016-04-17 08:48:43
【问题描述】:
我正在尝试使用 MDI 创建登录窗口。它连接到 SQL Server 表 test。我已经更改了数据类型并删除并重新创建了数据库。我有 2 列:usr 和 pwd,数据类型为 nvarchar。
Dim connetionString As String
Dim cnn As SqlConnection
connetionString = "Data Source=.;Initial Catalog=test;User ID=sa;Password=sasql"
cnn = New SqlConnection(connetionString)
Dim cmd As SqlCommand
Dim myreader As SqlDataReader
Dim query As String
query = "Select usr From users WHERE (usr =" + TextBox1.Text + " and pwd = " + TextBox2.Text + ")"
cmd = New SqlCommand(query, cnn)
cnn.Open()
myreader = cmd.ExecuteReader()
If myreader.Read() Then
Else
MessageBox.Show("Incorrect username/password !", "LOGIN ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
cnn.Close()
非常感谢。
【问题讨论】:
-
要解决您的特定问题,您需要在 SQL 字符串中围绕来自 db 的值添加引号。但这是你最不担心的。查找参数化和 SQL 注入。在继续之前,现在停止并执行此操作。
-
谢谢 sasfrog。我是初学者,我这样做是为了好玩。我会深入探讨。
-
构建字符串的最佳方法是在构建后检查它。您可以不带引号看到为什么从数据库中收到该消息。
标签: sql-server vb.net