在C#中如何实现对数据库操作的重构? ( 积分: 10 )

  • 主题发起人 主题发起人 mycwcgr_new
  • 开始时间 开始时间
M

mycwcgr_new

Unregistered / Unconfirmed
GUEST, unregistred user!
在C#中如何实现对数据库操作的重构?
在C#中, 有很多设及到数据库的操作,每次都要使用下面的语句
try
{
SqlConnect conn=new SqlConnection("server=(local)//NetSsk...");
conn.Open();
do
Something();
}
Catch (Exception ex)
{
//
}
finally
{
conn.Close();
}

DoSometing()是不同的数据库操作方法,返回不同的值,用什么好的重构方法,可以重用try ..catch ..finally语句!
 
在C#中如何实现对数据库操作的重构?
在C#中, 有很多设及到数据库的操作,每次都要使用下面的语句
try
{
SqlConnect conn=new SqlConnection("server=(local)//NetSsk...");
conn.Open();
do
Something();
}
Catch (Exception ex)
{
//
}
finally
{
conn.Close();
}

DoSometing()是不同的数据库操作方法,返回不同的值,用什么好的重构方法,可以重用try ..catch ..finally语句!
 
你将关于db的连接及一些固定操作封装在一个类中。
 
把try catch finally 放在基类中就可以了,如下:
public class DBBase
{
SqlConnection conn=new SqlConnection("Initial Catalog=Northwind;Data Source=.;User=sa;Password=sa;");
public void ExecuteSql()
{
try
{
conn.Open();
DoSomething(conn);
}
catch (Exception ex)
{
throw ex;
}
finally
{
conn.Close();
}
}
protected virtual void do
Something(SqlConnection conn)
{
Debug.Write("DBBase 调用do
Something");
}
}
public class myDBClass : DBBase
{

protected override voiddo
Something(SqlConnection conn)
{
// TODO: 添加 myDBClass.DoSomething 实现
//base.DoSomething (conn);
Debug.WriteLine ("myDBClass 调用do
Something");
}
}
调用的时候,运行的是子类的DoSomeThing,不知这样可否?
不过这样也有很大问题,如果子类有很多方法要操作数据库就不太好了
 
接受答案了.
 
后退
顶部