我一般都这么用。先自己做一个类,然后把它的方法通过static public,然后以后都当全局函数来用。不知有没有什么不好了。反正我用的很爽。代码量很小。好像也没出现过什么混乱。反正里面事务自己管好就行了。
public class DBHelper
{
public DBHelper()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
static public AdoHelper GetAdoHelper()
{
return AdoHelper.CreateHelper("GotDotNet.ApplicationBlocks.Data","GotDotNet.ApplicationBlocks.Data.Oracle");
} static public String GetConnectionString()
{
string connectionString = null;
connectionString = ConfigurationSettings.AppSettings["OracleConnectionString"];
return connectionString;
} static public IDataReader ExecuteReader(string sql)
{
AdoHelper helper = GetAdoHelper();
string cs = GetConnectionString();
IDataReader Reader= helper.ExecuteReader(cs,CommandType.Text,sql);
return Reader;
}
.....}然后调用
IDataReader Reader=DBHelper.ExecuteReader("select * from person");
..
Reader.Close();
public class DBHelper
{
public DBHelper()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
static public AdoHelper GetAdoHelper()
{
return AdoHelper.CreateHelper("GotDotNet.ApplicationBlocks.Data","GotDotNet.ApplicationBlocks.Data.Oracle");
} static public String GetConnectionString()
{
string connectionString = null;
connectionString = ConfigurationSettings.AppSettings["OracleConnectionString"];
return connectionString;
} static public IDataReader ExecuteReader(string sql)
{
AdoHelper helper = GetAdoHelper();
string cs = GetConnectionString();
IDataReader Reader= helper.ExecuteReader(cs,CommandType.Text,sql);
return Reader;
}
.....}然后调用
IDataReader Reader=DBHelper.ExecuteReader("select * from person");
..
Reader.Close();
using System.Configuration;
using GotDotNet.ApplicationBlocks.Data;namespace Portal.MySQLDAL
{
public class DataAccessLayer
{
public DataAccessLayer(){} public static AdoHelper GetAdoHelper()
{
return AdoHelper.CreateHelper( "GotDotNet.ApplicationBlocks.Data", "GotDotNet.ApplicationBlocks.Data.Odbc" );
} public static string GetConnectionString()
{
string connectionString = null;
connectionString = ConfigurationSettings.AppSettings["OdbcConnectionString"];
return connectionString;
}
}}
//使用 private AdoHelper helper = DataAccessLayer.GetAdoHelper(); public Article(){} #region IArticle Method public ArticleInfo GetArticle( int articleId )
{
ArticleInfo article = null;
IDataParameter parm = helper.GetParameter( PARM_ARTICLE_ID, articleId );
using ( IDataReader rdr = helper.ExecuteReader( DataAccessLayer.GetConnectionString(), CommandType.Text, SQL_SELECT_ARTICLE, parm ) )
……
答不对题,我是问做成单例模式后,是否会有问题,因为类里有两个成员变量,我担心这两个变量会造成状态问题。