如何修复“ConnectionString 属性尚未初始化”
Posted
技术标签:
【中文标题】如何修复“ConnectionString 属性尚未初始化”【英文标题】:How to fix “The ConnectionString property has not been initialized” 【发布时间】:2021-06-23 07:17:03 【问题描述】:大家好,我有一个关于这个方法的错误,我使用连接字符串一个 xml 文件。当我运行代码时,第一行是我的 xml 文件,它不是 工作我认为这段代码是正确的,但我找不到错误在哪里
这是连接字符串
<?xml version="1.0" encoding="utf-8" ?>
<conn>
<Dbconn>
<cstring>Server=DESKTOP-DSGBABB;Trusted_Connection=True ;database=master</cstring>
</Dbconn>
</conn>
这是我的代码
private void materialFlatButton1_Click(object sender, EventArgs e)
CreateDB();
public void CreateDB()
XmlTextReader reader = null;
reader = new XmlTextReader(filename);
reader.WhitespaceHandling = WhitespaceHandling.None;
while (reader.Read())
if (reader.NodeType == XmlNodeType.Element)
if (reader.Name == "cstring")
conn = reader.ReadString();
using (connection = new SqlConnection(conn))
if (connection.State != ConnectionState.Open)
connection.Open();
str = "CREATE DATABASE uc ON PRIMARY " +
"(NAME = uc, " +
"FILENAME = 'C:\\uc.mdf', " +
"SIZE = 3MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " +
"LOG ON (NAME = uc_Log, " +
"FILENAME = 'C:\\uc.ldf', " +
"SIZE = 1MB, " +
"MAXSIZE = 5MB, " +
"FILEGROWTH = 10%)";
connection.Close();
SqlCommand myCommand = new SqlCommand(str, connection);
try
connection.Open();
myCommand.ExecuteNonQuery();
MessageBox.Show("Veritabanı Başarıyla Oluşturuldu");
connection.Close();
catch (System.Exception ex)
lbls.Text = @"Error occured.
+ " + ex.Message.ToString();
connection.Close();
我将等待您的帮助
【问题讨论】:
到目前为止你尝试过什么?你试过调试吗?或者将一些值写入控制台?从 XML 中读取conn
后发送到 SqlConnection
之前的值是多少?
是的,我尝试调试但我找不到。我没有写入任何值我尝试创建新数据库。
我建议您调试并仔细查看conn
变量。
【参考方案1】:
请尝试如下更改您的连接字符串:
Data Source=DESKTOP-DSGBABB;Initial Catalog=master;Integrated Security=True;
所以 XML 将如下所示:
<?xml version="1.0" encoding="utf-8"?>
<conn>
<Dbconn>
<cstring>Data Source=DESKTOP-DSGBABB;Initial Catalog=master;Integrated Security=True;</cstring>
</Dbconn>
</conn>
在处理 XML 时使用 LINQ to XML API 会容易得多。
这是从 XML 文件中检索连接字符串的方法。
此外,SqlConnectionStringBuilder
类型将验证连接字符串的正确性。
c#
void Main()
const string configFile = @"e:\Temp\configXMLFile.xml";
XDocument xdoc = XDocument.Load(configFile);
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.ConnectionString = xdoc.Descendants("Dbconn").Elements("cstring").FirstOrDefault().Value;
using (connection = new SqlConnection(conn))
...
【讨论】:
感谢您的回答。我修好了它。这是一个非常不同的错误。它没有读取 conn 字符串。我做了一个不同的方式。以上是关于如何修复“ConnectionString 属性尚未初始化”的主要内容,如果未能解决你的问题,请参考以下文章