C#编程的新手,现在有点卡住了。我将如何创建一个简单的程序,让我提取并显示connectionStrings中的数据源值。并让我修改ID和密码吗?我是否在解析的正确轨道上
Document X = XDocument.Load("C:\Users\Odd_Creature\Desktop\SecureConfig\\UserProfiles\UserInfo.exe.config")
var configuration= X.Element("configuration").Element("connectionStrings");
var location = configuration.Descendants("").Attributes("").FirstOrDefault().Value;
doc.Save(xmlfile);
XMLFILE
<configuration>
<configProtectedData />
<system.diagnostics />
<system.windows.forms />
<uri />
<appSettings>
<add key="GenerateProfile" value="true" />
<add key="TestScore" value="30" />
<add key="TestApplicationName" value="User Account" />
</appSettings>
<connectionStrings>
<add name="MyExample.database" connectionString="data source=.\SQLEXPRESS;initial catalog=wadb;integrated security=false;encrypt=true;trustservercertificate=true;User Id=Tester;Password=Test1;"
providerName="System.Data.SqlClient" />
</connectionStrings>
答案 0 :(得分:0)
这是从XML文件解析连接字符串的一种蛮力方法。
static void Main(string[] args)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("settings.xml");
string connectionStrings = xmlDoc.GetElementsByTagName("connectionStrings")[0].InnerXml;
string tag = "connectionString=\"";
string connectionString = connectionStrings.Substring(connectionStrings.IndexOf(tag) + tag.Length);
string[] tokens = connectionString.Split(';');
Console.WriteLine(tokens.FirstOrDefault(t => t.Contains("data source=")));
Console.WriteLine(tokens.FirstOrDefault(t => t.Contains("User Id=")));
Console.WriteLine(tokens.FirstOrDefault(t => t.Contains("Password=")));
}
输出将是:
数据源=。\ SQLEXPRESS
用户ID =测试人员
Password = Test1
使用更多的代码,您应该能够编辑这些字段,然后使用xmlDoc.Save()更新更改。