我正在编写一个使用windows form
和database
的基于declare
的应用程序
我希望将以下global
vcon.open()
作为vcon.close()
,以便我可以使用open and close my database
和OleDbConnection vcon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=F:\workspace\RDASMS\RDASMS\rdadb.mdb");
到{{1}}我想要的形式。请告诉我们该怎么做。
{{1}}
答案 0 :(得分:1)
连接非常轻量级,因此您可以根据需要创建和关闭它们。也许是这样的:
using (var conn = new OleDbConnection(connStr))
{
// Use your connection
}
当块退出时,这将自动关闭连接。
您可能希望将字符串放在全局可访问的位置,例如Config
类。
答案 1 :(得分:0)
首先,您无法在命名空间中声明全局内容。即使有可能,这也不是一个好主意。鉴于您在避免代码重复方面的努力,我建议您:
关于2的观点:我注意到你使用喷气发动机(Access),这可能会因按需打开和关闭连接而导致性能下降,或者至少就像过去一样。在任何情况下都要注意,不要在需要时打开连接,并在完成后立即关闭,这是其他任何情况下都要遵循的模式。
答案 2 :(得分:0)
正如其他人所说,“全球”静态类型通常不是 最佳设计方法,而是回答您的具体问题:
namespace YourApplicationNamespace
{
public static class MyOleDbConnection
{
public static OleDbConnection OleDbConnection;
public static void Open()
{
// Do Something with OleDbConnection.
}
public static void Close()
{
// Do Something with OleDbConnection.
}
}
}
可以用作:
MyOleDbConnection.Open();
MyOleDbConnection.Close();
答案 3 :(得分:0)
您可以使用静态成员创建静态类。
public static MyConnection
{
public static OleDbConnection Connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\workspace\RDASMS\RDASMS\rdadb.mdb");
}
然后您可以像访问它一样访问它:
var vcon = MyConnection.Connection;
vcon.Open();
这样做会为您的程序增加一层不必要的复杂性。您应该创建一个严格处理数据库访问的类,例如上面的MyConnection
示例。您需要添加适当的方法来实际处理访问。使用Jet提供程序可以在不断打开和关闭文件时引入显着的性能影响。只有在连接上长时间不活动时才应关闭它。在这种情况下,你应该做更多的事情:
using(var vcon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\workspace\RDASMS\RDASMS\rdadb.mdb"))
{
// Your code here...
}
一旦您的操作完成,这将关闭连接。但是不要忘记可能因此产生的性能问题。