簡體   English   中英

附加信息:用戶 '' 登錄失敗。 SQL Server 2012

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM