【问题标题】:Write Dynamic Connection String to XML file将动态连接字符串写入 XML 文件
【发布时间】:2019-08-20 08:56:49
【问题描述】:

我希望将我的动态 SQL 连接字符串保存到 XML 文件中。下面是我将连接字符串保存到 SQLSettings.Dat 文件的代码。

我想要,它也应该保存到 XML 文件中,比如 App.config 文件。

Public Sub dbConnection()
    If File.Exists(Application.StartupPath & "\SQLSettings.dat") Then
        Dim quoteArray As String() = File.ReadAllLines(Application.StartupPath & "\SQLSettings.dat")
        For Each Item As String In quoteArray
            connstring = $"Data Source={quoteArray(0)};Initial Catalog={quoteArray(1)};User ID={quoteArray(2)};pwd={quoteArray(3)};"
        Next
    Else
        MsgBox("Database settings not exists, save settings before!")
        frmDBSettings.ShowDialog()
        Application.Restart()
    End If
    Try
        conn = New SqlConnection
        conn.ConnectionString = connstring
        conn.Open()
    Catch ex As SqlException
        MsgBox(ex.Message)
    End Try
End Sub

【问题讨论】:

    标签: sql xml vb.net


    【解决方案1】:

    尝试以下 xml linq

    Imports System.IO
    Imports System.Xml
    Imports System.Xml.Linq
    Imports System.Data.SqlClient
    
    Public Class Form1
        Const FILENAME As String = "c:\temp\test.xml"
        Public Sub dbConnection()
            Dim xmlHeader As String = "<?xml version=""1.0"" encoding=""utf-8"" ?><ConnectionStrings></ConnectionStrings>"
    
            Dim doc As XDocument = XDocument.Parse(xmlHeader)
            Dim connectionStrings As XElement = doc.Root
            Dim connstring As String
    
            If File.Exists(Application.StartupPath & "\SQLSettings.dat") Then
                Dim quoteArray As String() = File.ReadAllLines(Application.StartupPath & "\SQLSettings.dat")
                For Each Item As String In quoteArray
                    'Console.WriteLine(Item)
                    connstring = $"Data Source={quoteArray(0)};Initial Catalog={quoteArray(1)};User ID={quoteArray(2)};pwd={quoteArray(3)};"
                    Dim connectionString As New XElement("ConnectionString", connstring)
                    connectionStrings.Add(connectionString)
                Next
                doc.Save(FILENAME)
            Else
                MsgBox("Database settings not exists, save settings before!")
                frmDBSettings.ShowDialog()
                Application.Restart()
            End If
    
            Try
                conn = New SqlConnection
                conn.ConnectionString = connstring
                conn.Open()
            Catch ex As SqlException
                MsgBox(ex.Message)
            End Try
        End Sub
    End Class
    

    【讨论】:

    • 它工作得很好,感谢刚刚更改了一个bi,将这些行移到循环之外 Dim connectionString As New XElement("ConnectionString", connstring) connectionStrings.Add(connectionString)
    • 你需要在 For 循环中使用它,否则你只会得到一个结果(最后一个)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 2011-10-24
    相关资源
    最近更新 更多