[英]How to read Connection String from a Config file?
I wanted to develop an App which should read Connectionstring from all the config files present inside a Folder(including Subfolders). 我想开发一个应该从文件夹(包括子文件夹)中存在的所有配置文件中读取Connectionstring的应用程序。 I have developped win form App for this.
我为此开发了win form App。
private void btnConnString_Click(object sender, EventArgs e)
{
var files = Directory.GetFiles(
this.txtPath.Text.Trim(),
"*.config",
SearchOption.AllDirectories);
foreach (string filepath in files)
{
string fileName;
fileName = Path.GetFileName(filepath);
}
}
Now I have to read connection string. 现在我必须读取连接字符串。 How can I do?
我能怎么做?
You should try this approach: 你应该尝试这种方法:
ExeConfigurationFileMap configMap = new ExeConfigurationFileMap();
configMap.ExeConfigFilename = fileName;
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
string connString = config.ConnectionStrings.ConnectionStrings["ConnectionName"];
Hope Helps! 希望有帮助!
System.Configuration.Configuration rootWebConfig =
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/MyWebSiteRoot");
System.Configuration.ConnectionStringSettings connString;
if (rootWebConfig.ConnectionStrings.ConnectionStrings.Count > 0)
{
connString =
rootWebConfig.ConnectionStrings.ConnectionStrings["NorthwindConnectionString"];
if (connString != null)
Console.WriteLine("Northwind connection string = \"{0}\"",
connString.ConnectionString);
else
Console.WriteLine("No Northwind connection string");
}
string fileName;
fileName = Path.GetFileName(filepath);
MessageBox.Show(filepath);
ExeConfigurationFileMap configMap = new ExeConfigurationFileMap();
configMap.ExeConfigFilename = fileName;
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
System.Configuration.ConnectionStringSettings connString = config.ConnectionStrings.ConnectionStrings["ConnectionString"];
if(connString!= null)
{
MessageBox.Show(connString.ConnectionString);
}
else
MessageBox.Show("No ConnectionString");
i have added this there is an entry in my connection strin still it is always taking null value 我添加了这个在我的连接中有一个条目strin仍然总是采用null值
class AppConfigurationReader
{
public List<string> key1;
public List<string> key2;
public int ConnectionStringsFound;
public int GetTotalConnectionStringsFound()
{
ConnectionStringsFound = key1.Count();
return (ConnectionStringsFound);
}
public AppConfigurationReader()
{
key1= new List<string>();
key12 = new List<string>();
ConnectionStringsFound = 0;
}
public void getAppConfigconnectionStrings(string webConfigPath)
{
DataTable dtKeyValue = new DataTable();
dtKeyValue.TableName = "app.config connectionString";
dtKeyValue.Columns.Add("name");
dtKeyValue.Columns.Add("connectionString");
XmlTextReader reader = new XmlTextReader(webConfigPath);
XmlDocument xdoc = new XmlDocument();
xdoc.Load(reader);
reader.Close();
XmlElement root = xdoc.DocumentElement;
XmlNodeList appSettings = xdoc.SelectNodes("/configuration/connectionStrings/add");
foreach (XmlNode node in appSettings)
{
DataRow row = dtKeyValue.NewRow();
String name = node.Attributes["name"].Value.ToString();
String connectionString = node.Attributes["connectionString"].Value.ToString();
//row["name"] = name;
//row["connectionString"] = connectionString;
//dtKeyValue.Rows.Add(row);
if (String.Equals(name, "Mykey1") == true)
{
key1.Add(connectionString);
}
else if (String.Equals(name, "Mykey2") == true)
{
key2.Add(connectionString);
}
}
//return dtKeyValue;
}
}
//Try this it worked for me //试试这个对我有用
ExeConfigurationFileMap Map = new ExeConfigurationFileMap();
Map.ExeConfigFilename = fileName;
Configuration configurationManager = ConfigurationManager.OpenMappedExeConfiguration(Map , ConfigurationUserLevel.None);
string connectionString = configurationManager.ConnectionStrings.ConnectionStrings["YOUR CONNECTION NAME HERE"];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.