VB.NET加载XML中SQL Server连接信息失败,求解决方案
修复从XML加载数据库连接信息的问题
问题分析与修复步骤
1. XML配置文件的错误修正
你的XML属性值末尾多了不必要的分号,这些分号会被直接带入连接字符串,导致SQL Server无法识别正确的服务器、数据库名称。
修正后的XML:
<config> <conn Host="localhost\SQLEXPRESS" Sec="true" Database="KYC5" /> </config>
2. LINQ to XML与传统XML API混用问题
你同时使用了XDocument(LINQ to XML)和XmlNode(传统XmlDocument API),两者不能直接兼容,会导致节点获取失败。建议统一使用LINQ to XML简化操作。
3. 连接字符串拼接缺少分隔空格
拼接连接字符串时,各个参数之间没有空格分隔,会导致格式错误(比如server=xxxintegrated security=xxx会被识别为无效的服务器名称)。
4. 文件路径的拼写与格式问题
代码中加载的文件名coneccion.xml可能是拼写错误(正确应为connection.xml);同时加载文件时需添加路径分隔符\,避免目录路径与文件名直接拼接导致的路径错误。
修正后的完整代码
' 加载XML文件(注意文件名拼写与路径分隔符) Dim doc = XDocument.Load(My.Application.Info.DirectoryPath & "\connection.xml") ' 使用LINQ to XML获取conn节点的属性 Dim connElement = doc.Root.Element("conn") Dim host As String = connElement.Attribute("Host").Value Dim sec As String = connElement.Attribute("Sec").Value Dim database As String = connElement.Attribute("Database").Value ' 拼接正确格式的连接字符串(参数间添加空格与分号分隔) Public cnx As New SqlConnection($"server={host}; integrated security={sec}; Database={database};")
额外建议
- 可以用
Trusted_Connection=Yes替代integrated security=true,两者功能一致但可读性更强。 - 建议添加异常捕获(如
Try-Catch),方便排查文件加载或连接失败的具体原因。
内容的提问来源于stack exchange,提问作者Abdulrahim Omais
相关产品推荐
相关产品推荐

