我如何声明一个变量并在所有文件中使用它?例如:
MySqlConnection cn = new MySqlConnection("blablabla");
我想在所有文件中使用cn而不声明它。
9rnv2umw1#
你的问题的直接答案是使它公开和静态:
public static class Session { static MySqlConnection _connection; public static MySqlConnection Connection { get { if (_connection == null) { // instantiate _connection here } return _connection; } } }
然后,您可以使用Session.Connection从任何地方访问它。然而,恕我直言这是一个糟糕的设计决策。在应用程序的整个生命周期中拥有一个唯一的连接示例不会给你带来任何好处。事实上,它实际上会因为许多不同的原因让你的生活变成一场噩梦,比如不可预测的连接断开、不合时宜的打开/关闭和多线程地狱。相反,您应该有某种类型的连接工厂,它将创建一个正确初始化的连接对象并将其返回。这样,THAT 工厂方法就可以被全局访问。
Session.Connection
public static ConnectionFactory { public static MySqlConnection CreateConnection() { // create and return your MySqlConnection object } }
然后,从代码中的任何位置:
using (var cn = ConnectionFactory.CreateConnection()) { // do data-related stuff }
这里的using语句将确保连接示例在您使用完毕后得到正确处置,从而使您的应用摆脱无用的开销,并使服务器不必保持与客户端的开放通道。正如ADO .NET最佳实践所述:高性能应用程序将与数据源的连接保持在最短时间内(...)无论何时构建数据驱动应用程序,都要记住这一点。
using
kupeojn62#
使用**Singleton Pattern**。
class MySqlConnection { private static MySqlConnection _Instance; public static MySqlConnection Instance() { return _Instance == null ? _Instance = new MySqlConnection () : _Instance; } }
vc9ivgsu3#
也许您可以在App.config或Web.config中声明连接字符串。然后在每次需要时从那里读取connectionString。类似于以下示例:
App.config
Web.config
<?xml version="1.0"?> <configuration> <connectionStrings> <add name="MyConnection connectionString="Data Source=.;Initial Catalog=MyDB;Integrated Security=True"/> </connectionStrings> </configuration>
这里有一些信息:http://msdn.microsoft.com/es-es/library/ms254494(v=vs.110).aspx
7hiiyaii4#
嗨,如果你使用WPF应用程序,你可以在一个类中声明你的变量,这个类是一个App分部类。1.创建一个类名youwant.cs代码隐藏:
public partial class App { #region - your global variable - public MySqlConnection Cn { get; set; } ="blablablá" #endregion }
在项目任何部分,您都可以按以下方式使用它:在xaml中:
<TextBlock x:Name="TextBlockExampler" Text="{Binding Cn, Source={x:Static Application.Current}"/>
代码隐藏:
using System.Windows; ..... string texting = (Application.Current as App).Cn ....
就是这样。
4条答案
按热度按时间9rnv2umw1#
你的问题的直接答案是使它公开和静态:
然后,您可以使用
Session.Connection
从任何地方访问它。然而,恕我直言这是一个糟糕的设计决策。在应用程序的整个生命周期中拥有一个唯一的连接示例不会给你带来任何好处。事实上,它实际上会因为许多不同的原因让你的生活变成一场噩梦,比如不可预测的连接断开、不合时宜的打开/关闭和多线程地狱。
相反,您应该有某种类型的连接工厂,它将创建一个正确初始化的连接对象并将其返回。这样,THAT 工厂方法就可以被全局访问。
然后,从代码中的任何位置:
这里的
using
语句将确保连接示例在您使用完毕后得到正确处置,从而使您的应用摆脱无用的开销,并使服务器不必保持与客户端的开放通道。正如ADO .NET最佳实践所述:
高性能应用程序将与数据源的连接保持在最短时间内(...)
无论何时构建数据驱动应用程序,都要记住这一点。
kupeojn62#
使用**Singleton Pattern**。
vc9ivgsu3#
也许您可以在
App.config
或Web.config
中声明连接字符串。然后在每次需要时从那里读取connectionString。
类似于以下示例:
这里有一些信息:
http://msdn.microsoft.com/es-es/library/ms254494(v=vs.110).aspx
7hiiyaii4#
嗨,如果你使用WPF应用程序,你可以在一个类中声明你的变量,这个类是一个App分部类。
1.创建一个类名youwant.cs
代码隐藏:
在项目任何部分,您都可以按以下方式使用它:
在xaml中:
代码隐藏:
就是这样。