是否需要添加Using?

DeeplyMoved 2008-09-24 04:56:07
我在抽象工厂的数据访问层的公共方法类是这样实现的:
private static SqlConnection connection;
[align=left]public static SqlConnection Connection
{
get
{
string connectionString = ConfigurationManager.ConnectionStrings["MySchoolConnectionAccess"].ConnectionString;
if (connection == null)
{
connection = new SqlConnection(connectionString);
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Closed)
{
connection.Open();
}
else if (connection.State == System.Data.ConnectionState.Broken)
{
connection.Close();
connection.Open();
}
return connection;
}
}

public static int ExecuteCommand(string safeSql)
{
SqlCommand cmd = new SqlCommand(safeSql, Connection);
int result = cmd.ExecuteNonQuery();
return result;
}
---*********---
请问我要不要将ExecuteCommand方法改成
public static int ExecuteCommand(string safeSql)
{
using (Connection)
{
SqlCommand cmd = new SqlCommand(safeSql, Connection);
int result = cmd.ExecuteNonQuery();
return result;

}
}
...全文
84 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
DeeplyMoved 2008-09-25
  • 打赏
  • 举报
回复
要不要使用Using,还跟数据库连接池有关.
Data Provider提供连接池并通过连接池实现“物理连接”重复使用而避免频繁地建立和关闭“物理连接”,从而大大提高应用系统的性能。
wartim 2008-09-24
  • 打赏
  • 举报
回复
我比较喜欢用局部变量+try..finally的写法
changjiangzhibin 2008-09-24
  • 打赏
  • 举报
回复
可参照看看 PetShop 4.0的写法、用法
鲁虾 2008-09-24
  • 打赏
  • 举报
回复
哈哈,从网上找的,没改,直接拷贝,一块学习!!
鲁虾 2008-09-24
  • 打赏
  • 举报
回复
今天一个朋友问我using有几种用途,我的第一反应就是茴香豆的4种写法,第2反应是肯定又是个面试题。

先前就知道using可以这样用:

1、引用命名空间,减少冗余代码

Using System.Web.UI.WebControls;

2、即时释放资源

Using (TestObject a = new TestObject()) {

// 使用对象

}

//对象资源被释放

不是说有3条吗?立马查了一下sdk

***********************************************

sdk里是这么说的:

using 指令有两个用途:

◆创建命名空间的别名(using 别名)

◆允许在命名空间中使用类型,例如,不必限定该命名空间中的类型使用(using 指令)。

using [alias = ]class_or_namespace;

其中:

alias(可选)

希望表示命名空间的用户定义符号。之后,您就可以使用 alias 表示命名空间名。

class_or_namespace

希望使用或为其提供别名的命名空间名,或希望为其提供别名的类名。

备注

创建using 别名以便更易于将标识符限定到命名空间或类。

创建using 指令,以便在命名空间中使用类型而不必指定命名空间。using 指令不为您提供对可能嵌套在指定命名空间中的任何命名空间的访问。

命名空间

命名空间分为两类:用户定义的命名空间和系统定义的命名空间。

用户定义的命名空间是在代码中定义的命名空间。有关系统定义的命名空间的列表,请参见 .NET Framework 文档。

有关其他程序集中的引用方法的示例,请参见创建和使用 C# DLL。

示例

下面的示例显示了如何为命名空间定义和使用 using 别名:

// cs_using_directive.cs using MyAlias = MyCompany.Proj.Nested; // define an alias to represent a namespace namespace MyCompany.Proj { public class MyClass { public static void DoNothing() { } } namespace Nested // a nested namespace { public class ClassInNestedNameSpace { public static void SayHello() { System.Console.WriteLine("Hello"); } } } } public class UnNestedClass { public static void Main() { MyAlias.ClassInNestedNameSpace.SayHello(); // using alias } }


输出

Hello

示例

下面的示例显示了如何为类定义using 指令和 using 别名:

// cs_using_directive2.cs using System; // using directive using AliasToMyClass = NameSpace1.MyClass; // using alias for a class namespace NameSpace1 { public class MyClass { public override string ToString() { return "You are in NameSpace1.MyClass"; } } } namespace NameSpace2 { class MyClass { } } namespace NameSpace3 { using NameSpace1; // using directive using NameSpace2; // using directive class Test { public static void Main() { AliasToMyClass somevar = new AliasToMyClass(); Console.WriteLine(somevar); } } }


输出

You are in NameSpace1.MyClass

*********************************************

所以再加上一条:

3、创建命名空间的别名(using 别名)

using MyAlias = MyCompany.Proj.Nested;

lemong 2008-09-24
  • 打赏
  • 举报
回复
1.需要,随时释放资源是必须要养成的习惯
2.这是抽象工厂?
3.connection不要用静态

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧