C# 如何在整个winforms项目中使用单个连接字符串
我在项目中使用Winforms、MySQL和C#。因为我在应用程序设置中使用了连接字符串 在每个新页面上,我将声明一个连接字符串为public,并在连接中使用该字符串C# 如何在整个winforms项目中使用单个连接字符串,c#,winforms,C#,Winforms,我在项目中使用Winforms、MySQL和C#。因为我在应用程序设置中使用了连接字符串 在每个新页面上,我将声明一个连接字符串为public,并在连接中使用该字符串 MySqlConnection connection = new MySqlConnection(MyConString); 我只想在整个应用程序中声明此MyConString一次。如何做到这一点?在哪里做?您可以尝试以下方法: public static class Config { public static str
MySqlConnection connection = new MySqlConnection(MyConString);
我只想在整个应用程序中声明此MyConString一次。如何做到这一点?在哪里做?您可以尝试以下方法:
public static class Config
{
public static string ConnectionStr = ConfigurationManager.AppSettings["..."];
}
然后可以在代码中使用它
MySqlConnection connection = new MySqlConnection(Config.ConnectionStr);
建议的方法可在MSDN标题为的文章中找到。下面的示例是对本文稍加修改的 将连接字符串存储在文件中后,可以检索所有连接字符串,如下所示:
static void GetConnectionStrings()
{
var settings = ConfigurationManager.ConnectionStrings;
if (settings != null) {
foreach(ConnectionStringSettings cs in settings) {
Console.WriteLine(cs.Name);
Console.WriteLine(cs.ProviderName);
Console.WriteLine(cs.ConnectionString);
}
}
}
您也可以按名称获取连接字符串:
// Returns null if the name is not found.
static string GetConnectionStringByName(string name)
{
string returnValue = null; // Assume failure.
var settings = ConfigurationManager.ConnectionStrings[name];
if (settings != null) {
returnValue = settings.ConnectionString;
}
return returnValue;
}
这也使您能够将数据库用户名和密码以明文形式嵌入到应用程序程序集中。来自Microsoft的DataAccess具有强大的数据访问功能,除了其他问题解决和此问题之外,我认为您不应该将连接字符串公开到表单中,他们不需要知道这一点。您可以用一个简单的工厂封装连接的创建
public class ConnectionFactory
{
public static MySqlConnection Create()
{
string connectionString = ConfigurationManager.AppSettings["..."];
MySqlConnection conection = new MySqlConnection(Config.ConnectionStr);
connection.Open();
return connection;
}
}
然后,当您需要表单中的连接时,您可以执行以下操作:
private void button1_click(object sender, EventArg args)
{
using ( var connection = ConnectionFactory.Create() )
{
connection.Execute("...");
}
}
您可能有一个单独的类来处理数据库,并将连接字符串作为字段添加到其中。每次要连接到数据库时,都可以使用该类。如果需要,也可以使用属性访问类外的字符串
希望这有助于
Config
类示例需要添加到项目中的单个位置。它可能应该单独保存在一个文件中。