我一般都这么用。先自己做一个类,然后把它的方法通过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();

解决方案 »

  1.   

    using System;
    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 ) ) 
    ……
      

  2.   

    to  gOODiDEA(无语) :
    答不对题,我是问做成单例模式后,是否会有问题,因为类里有两个成员变量,我担心这两个变量会造成状态问题。