我试图使用来自用户的输入作为SQL数据库的连接字符串的一部分

时间:2015-11-04 19:39:56

标签: sql vb.net string

我的连接字符串保存在字符串变量名称str中 我想要做的是使用来自用户的输入作为字符串的一部分 我想从用户那里得到的部分是ID和PASS 我只是试图用ID和PASS检查连接状态作为用户的输入。

Dim str As String = "Data Source=DESKTOP;uid=ID;pwd=PASS;database=DB"
Dim conn As New SqlConnection(str)
Private Sub btnconnect_Click(sender As Object, e As EventArgs) Handles btnconnect.Click
    PW = txtadminpass.Text

    Try
        conn.Open()
        conn.Close()
        MsgBox("GOOD")
    Catch ex As Exception
        MsgBox(ex.Message)

    End Try
End Sub

在使用+和& amp;时,我不太喜欢对于字符串。 任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:3)

SqlConnectionStringBuilder是适合在这种情况下使用的类。您可以通过属性向其添加部分连接字符串,因此不会出错:

Imports System.Data.SqlClient

Module Module1

    Sub Main()
        Dim csb As New SqlConnectionStringBuilder
        csb.DataSource = "DESKTOP"
        csb.InitialCatalog = "DB"
        csb.UserID = "z"
        csb.Password = "x"
        ' output "Data Source=DESKTOP;Initial Catalog=DB;User ID=z;Password=x" '
        Console.WriteLine(csb.ToString())
        Console.ReadLine()

    End Sub

End Module

答案 1 :(得分:0)

因此,您需要检查是否允许用户登录数据库。您遵循的方式看起来很好,您根据给定的ID和密码定义连接字符串,并尝试建立连接,如果失败,用户无法登录,否则他可以这样做。

但是,您定义字符串的方式有误,您必须使用concatenation来保留ID和密码值,试试这个,

Dim str As String = "Data Source=DESKTOP; uid=" & ID & "; pwd=" & PASS & ";database=DB" 

答案 2 :(得分:0)

另一种方式,使其易于阅读:

Const CONN_STRING As String = "Data Source=DESKTOP;uid={0};pwd={1};database=DB"

Dim connString As String = String.Format(CONN_STRING, txtUserID.Text.Trim, txtPassword.Text)