[英]Additional information: Login failed for user ''. SQL Server 2012
我一直在解决这个问题:
Imports System.ComponentModel
Imports System.Data.SqlClient
Public Class Form1
Dim MyConnection As SqlConnection = New SqlConnection("Server=DESKTOP-I0N45MV\SQL2012;Database=user;uid=;pwd=")
Dim MyDataAdapter As New SqlDataAdapter()
Dim MyDataAdapter1 As New SqlDataAdapter()
Dim Result As String
Dim Result1 As String
Private Sub login_Click(sender As Object, e As EventArgs) Handles login.Click
MyDataAdapter.SelectCommand = New SqlCommand()
MyDataAdapter1.SelectCommand = New SqlCommand()
MyDataAdapter.SelectCommand.Connection = MyConnection
MyDataAdapter1.SelectCommand.Connection = MyConnection
MyDataAdapter.SelectCommand.CommandText = "Select Username From users WHERE Username ='" & user_.Text & "'"
MyDataAdapter1.SelectCommand.CommandText = "Select Password From users WHERE Password ='" & pass_.Text & "'"
MyConnection.Open()
Result = MyDataAdapter.SelectCommand.ExecuteScalar()
Result1 = MyDataAdapter1.SelectCommand.ExecuteScalar()
MyConnection.Close()
首先不要使用这个:
MyDataAdapter.SelectCommand.CommandText = "SELECT Username FROM users WHERE Username ='" & user_.Text & "'"
因为它会让你的代码可以通过 SQL 注入来注入,请改用存储过程或参数化查询。
其次,我不明白您为什么要使用两个查询。
你不能只用像SELECT Username FROM users WHERE Username = 'foo' AND Password = 'bar'
,然后只使用这个查询的结果吗?
第三,我建议您将连接字符串作为参数传递给您的项目。 如果您正在编写WinForms
项目,您可以像这样访问它: Dim connection As New SqlConnection(My.Settings.connectionString)
最后,因为这就是你所问的,你的连接字符串应该看起来像Server=YourServerName;Database=YourDBName;Trusted_Connection=True;
.
如果您在 SQL Server 上使用 Windows 身份验证,它应该看起来像这样Server=myServerAddress;Database=myDataBase;User Id=myUsername; Password=myPassword;
Server=myServerAddress;Database=myDataBase;User Id=myUsername; Password=myPassword;
, 如果您使用用户名和密码进行身份验证。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.