为了让数据访问更加简单,我给数据库访问抽象了一下,
下面是我的数据访问底层的架构图:
代码
///
<summary>
/// 数据库操作基类
/// </summary>
public class BaseHelper < T > : IDisposable
where T : AbsConnString, new ()
{
// Database connection strings
private static T _connString = new T();
private IDbConnection _dbconnection;
private IDbCommand _dbcommand;
/// <summary>
/// 实现构造函数
/// </summary>
/// <param name="conn"> 必须是集成自AbsConnString的类 </param>
public BaseHelper()
{
_dbconnection = CreateConnection();
_dbcommand = CreateCommand(_dbconnection);
}
private static IDbCommand CreateCommand(IDbConnection conn)
{
IDbCommand cmd = conn.CreateCommand();
cmd.CommandTimeout = _connString.TimeOut;
return cmd;
}
private static IDbConnection CreateConnection()
{
IDbConnection conn = new SqlConnection();
conn.ConnectionString = _connString.ConnectionString;
return conn;
}
public int ExecuteNonQuery( string cmdText, params IDbDataParameter[] commandParameters)
{
return ExecuteNonQuery(CommandType.Text, cmdText, commandParameters);
}
public int ExecuteNonQuery(CommandType cmdType, string cmdText, params IDbDataParameter[] commandParameters)
{
PrepareCommand(_dbcommand, null , cmdType, cmdText, commandParameters);
int val = _dbcommand.ExecuteNonQuery();
_dbcommand.Parameters.Clear();
return val;
}
public IDataReader ExecuteReader( string cmdText, params IDbDataParameter[] commandParameters)
{
return ExecuteReader(CommandType.Text, cmdText, commandParameters);
}
public IDataReader ExecuteReader(CommandType cmdType, string cmdText, params IDbDataParameter[] commandParameters)
{
PrepareCommand(_dbcommand, null , cmdType, cmdText, commandParameters);
IDataReader rdr = _dbcommand.ExecuteReader(CommandBehavior.CloseConnection);
_dbcommand.Parameters.Clear();
return rdr;
}
public object ExecuteScalar( string cmdText, params IDbDataParameter[] commandParameters)
{
return ExecuteScalar(CommandType.Text, cmdText, commandParameters);
}
public object ExecuteScalar(CommandType cmdType, string cmdText, params IDbDataParameter[] commandParameters)
{
PrepareCommand(_dbcommand, null , cmdType, cmdText, commandParameters);
object obj = _dbcommand.ExecuteScalar();
_dbcommand.Parameters.Clear();
return obj;
}
public DataTable ExecuteTable(CommandType cmdType, string cmdText, params IDbDataParameter[] commandParameters)
{
PrepareCommand(_dbcommand, null , cmdType, cmdText, commandParameters);
using (DataSet st = new DataSet())
{
IDbDataAdapter ap = new SqlDataAdapter();
ap.SelectCommand = _dbcommand;
ap.Fill(st);
_dbcommand.Parameters.Clear();
return st.Tables[ 0 ];
}
}
public DataTable ExecuteTable( string cmdText, params IDbDataParameter[] commandParameters)
{
return ExecuteTable(CommandType.Text, cmdText, commandParameters);
}
public object ExecuteScalarByTrans(CommandType cmdType, string cmdText, params IDbDataParameter[] commandParameters)
{
using (IDbTransaction trans = _dbconnection.BeginTransaction())
{
PrepareCommand(_dbcommand, trans, cmdType, cmdText, commandParameters);
try
{
object val = _dbcommand.ExecuteScalar();
if (val != null )
{
trans.Commit();
_dbcommand.Parameters.Clear();
return val;
}
else
{
trans.Rollback();
}
}
catch
{
trans.Rollback();
}
return null ;
}
}
public int ExecuteNonQueryByTrans(CommandType cmdType, string cmdText, params IDbDataParameter[] commandParameters)
{
PrepareCommand(_dbcommand, null , cmdType, cmdText, commandParameters);
using (IDbTransaction trans = _dbconnection.BeginTransaction())
{
try
{
int val = _dbcommand.ExecuteNonQuery();
if (val > 0 )
{
trans.Commit();
_dbcommand.Parameters.Clear();
return val;
}
else
{
trans.Rollback();
}
}
catch
{
trans.Rollback();
}
return - 1 ;
}
}
public IDbDataParameter CreateParameter( string parameterName)
{
return StaticCreateParameter(parameterName);
}
public IDbDataParameter CreateParameter( string parameterName, object value)
{
return StaticCreateParameter(parameterName, value);
}
public IDbDataParameter CreateParameter( string parameterName, SqlDbType dbType, int size, object value)
{
return StaticCreateParameter(parameterName, dbType, size, value);
}
public IDbDataParameter CreateParameter( string parameterName, SqlDbType dbType, object value)
{
return StaticCreateParameter(parameterName, dbType, value);
}
public void SetParameter(IDataParameter parameter, object value)
{
StaticSetParameter(parameter, value);
}
#region Static Method
/// <summary>
/// Execute a SqlCommand (that returns no resultset) against the database specified in the connection string
/// using the provided parameters.
/// </summary>
/// <remarks>
/// e.g.:
/// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
/// </remarks>
/// <param name="connectionString"> a valid connection string for a SqlConnection </param>
/// <param name="commandType"> the CommandType (stored procedure, text, etc.) </param>
/// <param name="commandText"> the stored procedure name or T-SQL command </param>
/// <param name="commandParameters"> an array of SqlParamters used to execute the command </param>
/// <returns> an int representing the number of rows affected by the command </returns>
public static int StaticExecuteNonQuery(CommandType cmdType, string cmdText, params IDbDataParameter[] commandParameters)
{
using (IDbConnection conn = CreateConnection())
{
using (IDbCommand cmd = CreateCommand(conn))
{
PrepareCommand(cmd, null , cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}
}
/// <summary>
///
/// </summary>
/// <param name="cmdType"></param>
/// <param name="cmdText"></param>
/// <param name="commandParameters"></param>
/// <returns></returns>
public static DataTable StaticExecuteTable(CommandType cmdType, string cmdText, params IDbDataParameter[] commandParameters)
{
using (IDbConnection connection = CreateConnection())
{
using (IDbCommand cmd = CreateCommand(connection))
{
PrepareCommand(cmd, null , cmdType, cmdText, commandParameters);
using (DataSet st = new DataSet())
{
IDbDataAdapter ap = new SqlDataAdapter();
ap.SelectCommand = cmd;
ap.Fill(st);
cmd.Parameters.Clear();
return st.Tables[ 0 ];
}
}
}
}
/// <summary>
/// Execute a SqlCommand that returns the first column of the first record against the database specified in the connection string
/// using the provided parameters.
/// </summary>
/// <remarks>
/// e.g.:
/// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
/// </remarks>
/// <param name="connectionString"> a valid connection string for a SqlConnection </param>
/// <param name="commandType"> the CommandType (stored procedure, text, etc.) </param>
/// <param name="commandText"> the stored procedure name or T-SQL command </param>
/// <param name="commandParameters"> an array of SqlParamters used to execute the command </param>
/// <returns> An object that should be converted to the expected type using Convert.To{Type} </returns>
public static object StaticExecuteScalar(CommandType cmdType, string cmdText, params IDbDataParameter[] commandParameters)
{
using (IDbConnection connection = CreateConnection())
{
using (IDbCommand cmd = CreateCommand(connection))
{
PrepareCommand(cmd, null , cmdType, cmdText, commandParameters);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
return val;
}
}
}
public static IDbDataParameter StaticCreateParameter( string parameterName)
{
SqlParameter p = new SqlParameter();
p.ParameterName = parameterName;
return p;
}
public static IDbDataParameter StaticCreateParameter( string parameterName, object value)
{
if (value == null )
{
value = ( object )DBNull.Value;
}
SqlParameter p = new SqlParameter(parameterName, value);
return p;
}
public static IDbDataParameter StaticCreateParameter( string parameterName, SqlDbType dbType, int size, object value)
{
if (value == null )
{
value = ( object )DBNull.Value;
}
SqlParameter p = new SqlParameter(parameterName, dbType, size);
p.Value = value;
return p;
}
public static IDbDataParameter StaticCreateParameter( string parameterName, SqlDbType dbType, object value)
{
if (value == null )
{
value = ( object )DBNull.Value;
}
SqlParameter p = new SqlParameter(parameterName, dbType);
p.Value = value;
return p;
}
public static void StaticSetParameter(IDataParameter parameter, object value)
{
if (value == null )
{
value = ( object )DBNull.Value;
}
parameter.Value = value;
}
/// <summary>
/// Prepare a command for execution
/// </summary>
/// <param name="cmd"> IDbCommand Object </param>
/// <param name="trans"> IDbTransaction Object </param>
/// <param name="cmdType"> Cmd type e.g. stored procedure or text </param>
/// <param name="cmdText"> Command text, e.g. Select * from Products </param>
/// <param name="cmdParms"> IDbDataParameters to use in the command </param>
private static void PrepareCommand(IDbCommand cmd, IDbTransaction trans, CommandType cmdType, string cmdText, IDbDataParameter[] cmdParms)
{
if (cmd.Connection.State != ConnectionState.Open)
{
cmd.Connection.Open();
}
cmd.CommandText = cmdText;
if (trans != null )
{
cmd.Transaction = trans;
}
cmd.CommandType = cmdType;
if (cmdParms != null && cmdParms.Length > 0 )
{
foreach (IDbDataParameter parm in cmdParms)
{
cmd.Parameters.Add(parm);
}
}
}
#endregion
#region IDisposable Members
protected void Dispose()
{
// 托管代码
if (_dbcommand != null )
{
_dbcommand.Dispose();
_dbcommand = null ;
}
// 非托管代码
if (_dbconnection != null )
{
_dbconnection.Dispose();
_dbconnection = null ;
}
}
#endregion
}
/// 数据库操作基类
/// </summary>
public class BaseHelper < T > : IDisposable
where T : AbsConnString, new ()
{
// Database connection strings
private static T _connString = new T();
private IDbConnection _dbconnection;
private IDbCommand _dbcommand;
/// <summary>
/// 实现构造函数
/// </summary>
/// <param name="conn"> 必须是集成自AbsConnString的类 </param>
public BaseHelper()
{
_dbconnection = CreateConnection();
_dbcommand = CreateCommand(_dbconnection);
}
private static IDbCommand CreateCommand(IDbConnection conn)
{
IDbCommand cmd = conn.CreateCommand();
cmd.CommandTimeout = _connString.TimeOut;
return cmd;
}
private static IDbConnection CreateConnection()
{
IDbConnection conn = new SqlConnection();
conn.ConnectionString = _connString.ConnectionString;
return conn;
}
public int ExecuteNonQuery( string cmdText, params IDbDataParameter[] commandParameters)
{
return ExecuteNonQuery(CommandType.Text, cmdText, commandParameters);
}
public int ExecuteNonQuery(CommandType cmdType, string cmdText, params IDbDataParameter[] commandParameters)
{
PrepareCommand(_dbcommand, null , cmdType, cmdText, commandParameters);
int val = _dbcommand.ExecuteNonQuery();
_dbcommand.Parameters.Clear();
return val;
}
public IDataReader ExecuteReader( string cmdText, params IDbDataParameter[] commandParameters)
{
return ExecuteReader(CommandType.Text, cmdText, commandParameters);
}
public IDataReader ExecuteReader(CommandType cmdType, string cmdText, params IDbDataParameter[] commandParameters)
{
PrepareCommand(_dbcommand, null , cmdType, cmdText, commandParameters);
IDataReader rdr = _dbcommand.ExecuteReader(CommandBehavior.CloseConnection);
_dbcommand.Parameters.Clear();
return rdr;
}
public object ExecuteScalar( string cmdText, params IDbDataParameter[] commandParameters)
{
return ExecuteScalar(CommandType.Text, cmdText, commandParameters);
}
public object ExecuteScalar(CommandType cmdType, string cmdText, params IDbDataParameter[] commandParameters)
{
PrepareCommand(_dbcommand, null , cmdType, cmdText, commandParameters);
object obj = _dbcommand.ExecuteScalar();
_dbcommand.Parameters.Clear();
return obj;
}
public DataTable ExecuteTable(CommandType cmdType, string cmdText, params IDbDataParameter[] commandParameters)
{
PrepareCommand(_dbcommand, null , cmdType, cmdText, commandParameters);
using (DataSet st = new DataSet())
{
IDbDataAdapter ap = new SqlDataAdapter();
ap.SelectCommand = _dbcommand;
ap.Fill(st);
_dbcommand.Parameters.Clear();
return st.Tables[ 0 ];
}
}
public DataTable ExecuteTable( string cmdText, params IDbDataParameter[] commandParameters)
{
return ExecuteTable(CommandType.Text, cmdText, commandParameters);
}
public object ExecuteScalarByTrans(CommandType cmdType, string cmdText, params IDbDataParameter[] commandParameters)
{
using (IDbTransaction trans = _dbconnection.BeginTransaction())
{
PrepareCommand(_dbcommand, trans, cmdType, cmdText, commandParameters);
try
{
object val = _dbcommand.ExecuteScalar();
if (val != null )
{
trans.Commit();
_dbcommand.Parameters.Clear();
return val;
}
else
{
trans.Rollback();
}
}
catch
{
trans.Rollback();
}
return null ;
}
}
public int ExecuteNonQueryByTrans(CommandType cmdType, string cmdText, params IDbDataParameter[] commandParameters)
{
PrepareCommand(_dbcommand, null , cmdType, cmdText, commandParameters);
using (IDbTransaction trans = _dbconnection.BeginTransaction())
{
try
{
int val = _dbcommand.ExecuteNonQuery();
if (val > 0 )
{
trans.Commit();
_dbcommand.Parameters.Clear();
return val;
}
else
{
trans.Rollback();
}
}
catch
{
trans.Rollback();
}
return - 1 ;
}
}
public IDbDataParameter CreateParameter( string parameterName)
{
return StaticCreateParameter(parameterName);
}
public IDbDataParameter CreateParameter( string parameterName, object value)
{
return StaticCreateParameter(parameterName, value);
}
public IDbDataParameter CreateParameter( string parameterName, SqlDbType dbType, int size, object value)
{
return StaticCreateParameter(parameterName, dbType, size, value);
}
public IDbDataParameter CreateParameter( string parameterName, SqlDbType dbType, object value)
{
return StaticCreateParameter(parameterName, dbType, value);
}
public void SetParameter(IDataParameter parameter, object value)
{
StaticSetParameter(parameter, value);
}
#region Static Method
/// <summary>
/// Execute a SqlCommand (that returns no resultset) against the database specified in the connection string
/// using the provided parameters.
/// </summary>
/// <remarks>
/// e.g.:
/// int result = ExecuteNonQuery(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
/// </remarks>
/// <param name="connectionString"> a valid connection string for a SqlConnection </param>
/// <param name="commandType"> the CommandType (stored procedure, text, etc.) </param>
/// <param name="commandText"> the stored procedure name or T-SQL command </param>
/// <param name="commandParameters"> an array of SqlParamters used to execute the command </param>
/// <returns> an int representing the number of rows affected by the command </returns>
public static int StaticExecuteNonQuery(CommandType cmdType, string cmdText, params IDbDataParameter[] commandParameters)
{
using (IDbConnection conn = CreateConnection())
{
using (IDbCommand cmd = CreateCommand(conn))
{
PrepareCommand(cmd, null , cmdType, cmdText, commandParameters);
int val = cmd.ExecuteNonQuery();
cmd.Parameters.Clear();
return val;
}
}
}
/// <summary>
///
/// </summary>
/// <param name="cmdType"></param>
/// <param name="cmdText"></param>
/// <param name="commandParameters"></param>
/// <returns></returns>
public static DataTable StaticExecuteTable(CommandType cmdType, string cmdText, params IDbDataParameter[] commandParameters)
{
using (IDbConnection connection = CreateConnection())
{
using (IDbCommand cmd = CreateCommand(connection))
{
PrepareCommand(cmd, null , cmdType, cmdText, commandParameters);
using (DataSet st = new DataSet())
{
IDbDataAdapter ap = new SqlDataAdapter();
ap.SelectCommand = cmd;
ap.Fill(st);
cmd.Parameters.Clear();
return st.Tables[ 0 ];
}
}
}
}
/// <summary>
/// Execute a SqlCommand that returns the first column of the first record against the database specified in the connection string
/// using the provided parameters.
/// </summary>
/// <remarks>
/// e.g.:
/// Object obj = ExecuteScalar(connString, CommandType.StoredProcedure, "PublishOrders", new SqlParameter("@prodid", 24));
/// </remarks>
/// <param name="connectionString"> a valid connection string for a SqlConnection </param>
/// <param name="commandType"> the CommandType (stored procedure, text, etc.) </param>
/// <param name="commandText"> the stored procedure name or T-SQL command </param>
/// <param name="commandParameters"> an array of SqlParamters used to execute the command </param>
/// <returns> An object that should be converted to the expected type using Convert.To{Type} </returns>
public static object StaticExecuteScalar(CommandType cmdType, string cmdText, params IDbDataParameter[] commandParameters)
{
using (IDbConnection connection = CreateConnection())
{
using (IDbCommand cmd = CreateCommand(connection))
{
PrepareCommand(cmd, null , cmdType, cmdText, commandParameters);
object val = cmd.ExecuteScalar();
cmd.Parameters.Clear();
return val;
}
}
}
public static IDbDataParameter StaticCreateParameter( string parameterName)
{
SqlParameter p = new SqlParameter();
p.ParameterName = parameterName;
return p;
}
public static IDbDataParameter StaticCreateParameter( string parameterName, object value)
{
if (value == null )
{
value = ( object )DBNull.Value;
}
SqlParameter p = new SqlParameter(parameterName, value);
return p;
}
public static IDbDataParameter StaticCreateParameter( string parameterName, SqlDbType dbType, int size, object value)
{
if (value == null )
{
value = ( object )DBNull.Value;
}
SqlParameter p = new SqlParameter(parameterName, dbType, size);
p.Value = value;
return p;
}
public static IDbDataParameter StaticCreateParameter( string parameterName, SqlDbType dbType, object value)
{
if (value == null )
{
value = ( object )DBNull.Value;
}
SqlParameter p = new SqlParameter(parameterName, dbType);
p.Value = value;
return p;
}
public static void StaticSetParameter(IDataParameter parameter, object value)
{
if (value == null )
{
value = ( object )DBNull.Value;
}
parameter.Value = value;
}
/// <summary>
/// Prepare a command for execution
/// </summary>
/// <param name="cmd"> IDbCommand Object </param>
/// <param name="trans"> IDbTransaction Object </param>
/// <param name="cmdType"> Cmd type e.g. stored procedure or text </param>
/// <param name="cmdText"> Command text, e.g. Select * from Products </param>
/// <param name="cmdParms"> IDbDataParameters to use in the command </param>
private static void PrepareCommand(IDbCommand cmd, IDbTransaction trans, CommandType cmdType, string cmdText, IDbDataParameter[] cmdParms)
{
if (cmd.Connection.State != ConnectionState.Open)
{
cmd.Connection.Open();
}
cmd.CommandText = cmdText;
if (trans != null )
{
cmd.Transaction = trans;
}
cmd.CommandType = cmdType;
if (cmdParms != null && cmdParms.Length > 0 )
{
foreach (IDbDataParameter parm in cmdParms)
{
cmd.Parameters.Add(parm);
}
}
}
#endregion
#region IDisposable Members
protected void Dispose()
{
// 托管代码
if (_dbcommand != null )
{
_dbcommand.Dispose();
_dbcommand = null ;
}
// 非托管代码
if (_dbconnection != null )
{
_dbconnection.Dispose();
_dbconnection = null ;
}
}
#endregion
}
代码
///
<summary>
/// 数据库连接抽象类类
/// </summary>
public abstract class AbsConnString
{
/// <summary>
/// 超时默认时间为30
/// </summary>
private int _timeOut = 30 ;
/// <summary>
/// 超时时间
/// </summary>
public virtual int TimeOut
{
get
{
return _timeOut;
}
}
/// <summary>
/// 数据库的连接字符串
/// </summary>
public abstract string ConnectionString { get ; }
}
/// 数据库连接抽象类类
/// </summary>
public abstract class AbsConnString
{
/// <summary>
/// 超时默认时间为30
/// </summary>
private int _timeOut = 30 ;
/// <summary>
/// 超时时间
/// </summary>
public virtual int TimeOut
{
get
{
return _timeOut;
}
}
/// <summary>
/// 数据库的连接字符串
/// </summary>
public abstract string ConnectionString { get ; }
}
代码
public
class
OOSConnString : Base.AbsConnString
{
public OOSConnString()
{
}
private string _connectionstring;
public override string ConnectionString
{
get
{
if ( string .IsNullOrEmpty(_connectionstring))
{
_connectionstring = System.Configuration.ConfigurationManager.ConnectionStrings[ " NewMaximOOSConnString " ].ConnectionString;
}
return _connectionstring;
}
}
}
{
public OOSConnString()
{
}
private string _connectionstring;
public override string ConnectionString
{
get
{
if ( string .IsNullOrEmpty(_connectionstring))
{
_connectionstring = System.Configuration.ConfigurationManager.ConnectionStrings[ " NewMaximOOSConnString " ].ConnectionString;
}
return _connectionstring;
}
}
}
///
<summary>
/// 对象型数据库操作类
/// </summary>
public class OOSHelper : Base.BaseHelper < OOSConnString >
{
}
/// 对象型数据库操作类
/// </summary>
public class OOSHelper : Base.BaseHelper < OOSConnString >
{
}
有了以上这个架构,我们数据库访问将更加方便,它支持静态调用和类的调用。
下面是采用类的调用方式(主要是应用于负责的访问方式,new时必须要用using 这样可以避免连接不能及时关闭的问题)
代码
using System;
using System.Data;
using System.Text;
using System.Collections.Generic;
using Maxim.Entity;
using Maxim.DataAccess.Access;
namespace Maxim.DataAccess.Generated._Base
{
/// <summary>
/// Class:A_CustomerBase
/// Author:Steven
/// Create:2010-4-12 14:52:13
/// </summary>
public abstract class A_CustomerBase
{
/// <summary>
///
/// </summary>
public A_CustomerBase()
{
}
public List < A_CustomerInfo > GetA_CustomerInfoALL()
{
List < A_CustomerInfo > list = new List < A_CustomerInfo > ();
string sql = " SELECT * FROM [A_Customer] " ;
using (OOSHelper dbhelper = new OOSHelper())
{
using (IDataReader reader = dbhelper.ExecuteReader(sql))
{
while (reader.Read())
{
list.Add(A_CustomerInfo.SetValue(reader));
}
}
}
return list;
}
public A_CustomerInfo GetA_CustomerInfo( string _eRPNO)
{
A_CustomerInfo aCustomerinfo = null ;
StringBuilder sql = new StringBuilder();
sql.Append( " SELECT * FROM " );
sql.Append( " [A_Customer] " );
sql.Append( " WHERE " );
sql.Append( " [ERPNO]=@ERPNO " );
using (OOSHelper dbhelper = new OOSHelper())
{
IDbDataParameter[] p_Parms = new IDbDataParameter[]{
dbhelper.CreateParameter( " @ERPNO " ,_eRPNO)
};
using (IDataReader reader = dbhelper.ExecuteReader(sql.ToString(),p_Parms))
{
if (reader.Read())
{
aCustomerinfo = A_CustomerInfo.SetValue(reader);
}
}
}
return aCustomerinfo;
}
public bool Insert(A_CustomerInfo aCustomerinfo)
{
StringBuilder sql = new StringBuilder();
sql.Append( " INSERT INTO " );
sql.Append( " [A_Customer]( " );
sql.Append( " [ERPNO], " );
sql.Append( " [CorpName], " );
sql.Append( " [CorpAddress], " );
sql.Append( " [CorpPhone], " );
sql.Append( " [CorpContract], " );
sql.Append( " [CorpTax], " );
sql.Append( " [CorpBank], " );
sql.Append( " [CorpBankNO], " );
sql.Append( " [PayType], " );
sql.Append( " [CustomerType], " );
sql.Append( " [ERPContractType], " );
sql.Append( " [IsDirectShip], " );
sql.Append( " [IsEnabled], " );
sql.Append( " [UpdateTime], " );
sql.Append( " [CurrencyID], " );
sql.Append( " [NeedProformaInvoice] " );
sql.Append( " ) VALUES( " );
sql.Append( " @ERPNO, " );
sql.Append( " @CorpName, " );
sql.Append( " @CorpAddress, " );
sql.Append( " @CorpPhone, " );
sql.Append( " @CorpContract, " );
sql.Append( " @CorpTax, " );
sql.Append( " @CorpBank, " );
sql.Append( " @CorpBankNO, " );
sql.Append( " @PayType, " );
sql.Append( " @CustomerType, " );
sql.Append( " @ERPContractType, " );
sql.Append( " @IsDirectShip, " );
sql.Append( " @IsEnabled, " );
sql.Append( " @UpdateTime, " );
sql.Append( " @CurrencyID, " );
sql.Append( " @NeedProformaInvoice " );
sql.Append( " ) " );
using (OOSHelper dbhelper = new OOSHelper())
{
IDbDataParameter[] p_Parms = new IDbDataParameter[]{
dbhelper.CreateParameter( " @ERPNO " ,aCustomerinfo.ERPNO),
dbhelper.CreateParameter( " @CorpName " ,aCustomerinfo.CorpName),
dbhelper.CreateParameter( " @CorpAddress " ,aCustomerinfo.CorpAddress),
dbhelper.CreateParameter( " @CorpPhone " ,aCustomerinfo.CorpPhone),
dbhelper.CreateParameter( " @CorpContract " ,aCustomerinfo.CorpContract),
dbhelper.CreateParameter( " @CorpTax " ,aCustomerinfo.CorpTax),
dbhelper.CreateParameter( " @CorpBank " ,aCustomerinfo.CorpBank),
dbhelper.CreateParameter( " @CorpBankNO " ,aCustomerinfo.CorpBankNO),
dbhelper.CreateParameter( " @PayType " ,aCustomerinfo.PayType),
dbhelper.CreateParameter( " @CustomerType " ,aCustomerinfo.CustomerType),
dbhelper.CreateParameter( " @ERPContractType " ,aCustomerinfo.ERPContractType),
dbhelper.CreateParameter( " @IsDirectShip " ,aCustomerinfo.IsDirectShip),
dbhelper.CreateParameter( " @IsEnabled " ,aCustomerinfo.IsEnabled),
dbhelper.CreateParameter( " @UpdateTime " ,aCustomerinfo.UpdateTime),
dbhelper.CreateParameter( " @CurrencyID " ,aCustomerinfo.CurrencyID),
dbhelper.CreateParameter( " @NeedProformaInvoice " ,aCustomerinfo.NeedProformaInvoice)
};
return 0 < dbhelper.ExecuteNonQuery(sql.ToString(),p_Parms);
}
}
public bool Update(A_CustomerInfo aCustomerinfo)
{
StringBuilder sql = new StringBuilder();
sql.Append( " UPDATE " );
sql.Append( " [A_Customer] " );
sql.Append( " SET " );
sql.Append( " [CorpName]=@CorpName, " );
sql.Append( " [CorpAddress]=@CorpAddress, " );
sql.Append( " [CorpPhone]=@CorpPhone, " );
sql.Append( " [CorpContract]=@CorpContract, " );
sql.Append( " [CorpTax]=@CorpTax, " );
sql.Append( " [CorpBank]=@CorpBank, " );
sql.Append( " [CorpBankNO]=@CorpBankNO, " );
sql.Append( " [PayType]=@PayType, " );
sql.Append( " [CustomerType]=@CustomerType, " );
sql.Append( " [ERPContractType]=@ERPContractType, " );
sql.Append( " [IsDirectShip]=@IsDirectShip, " );
sql.Append( " [IsEnabled]=@IsEnabled, " );
sql.Append( " [UpdateTime]=@UpdateTime, " );
sql.Append( " [CurrencyID]=@CurrencyID, " );
sql.Append( " [NeedProformaInvoice]=@NeedProformaInvoice " );
sql.Append( " WHERE " );
sql.Append( " [ERPNO]=@ERPNO " );
using (OOSHelper dbhelper = new OOSHelper())
{
IDbDataParameter[] p_Parms = new IDbDataParameter[]{
dbhelper.CreateParameter( " @CorpName " ,aCustomerinfo.CorpName),
dbhelper.CreateParameter( " @CorpAddress " ,aCustomerinfo.CorpAddress),
dbhelper.CreateParameter( " @CorpPhone " ,aCustomerinfo.CorpPhone),
dbhelper.CreateParameter( " @CorpContract " ,aCustomerinfo.CorpContract),
dbhelper.CreateParameter( " @CorpTax " ,aCustomerinfo.CorpTax),
dbhelper.CreateParameter( " @CorpBank " ,aCustomerinfo.CorpBank),
dbhelper.CreateParameter( " @CorpBankNO " ,aCustomerinfo.CorpBankNO),
dbhelper.CreateParameter( " @PayType " ,aCustomerinfo.PayType),
dbhelper.CreateParameter( " @CustomerType " ,aCustomerinfo.CustomerType),
dbhelper.CreateParameter( " @ERPContractType " ,aCustomerinfo.ERPContractType),
dbhelper.CreateParameter( " @IsDirectShip " ,aCustomerinfo.IsDirectShip),
dbhelper.CreateParameter( " @IsEnabled " ,aCustomerinfo.IsEnabled),
dbhelper.CreateParameter( " @UpdateTime " ,aCustomerinfo.UpdateTime),
dbhelper.CreateParameter( " @CurrencyID " ,aCustomerinfo.CurrencyID),
dbhelper.CreateParameter( " @NeedProformaInvoice " ,aCustomerinfo.NeedProformaInvoice),
dbhelper.CreateParameter( " @ERPNO " ,aCustomerinfo.ERPNO)
};
return 0 < dbhelper.ExecuteNonQuery(sql.ToString(),p_Parms);
}
}
public bool Delete( string _eRPNO)
{
StringBuilder sql = new StringBuilder();
sql.Append( " DELETE FROM " );
sql.Append( " [A_Customer] " );
sql.Append( " WHERE " );
sql.Append( " [ERPNO]=@ERPNO " );
using (OOSHelper dbhelper = new OOSHelper())
{
IDbDataParameter[] p_Parms = new IDbDataParameter[]{
dbhelper.CreateParameter( " @ERPNO " ,_eRPNO)
};
return 0 < dbhelper.ExecuteNonQuery(sql.ToString(),p_Parms);
}
}
}
}
using System;
using System.Data;
using System.Text;
using System.Collections.Generic;
using Maxim.Entity;
using Maxim.DataAccess.Access;
namespace Maxim.DataAccess.Generated._Base
{
/// <summary>
/// Class:A_CustomerBase
/// Author:Steven
/// Create:2010-4-12 14:52:13
/// </summary>
public abstract class A_CustomerBase
{
/// <summary>
///
/// </summary>
public A_CustomerBase()
{
}
public List < A_CustomerInfo > GetA_CustomerInfoALL()
{
List < A_CustomerInfo > list = new List < A_CustomerInfo > ();
string sql = " SELECT * FROM [A_Customer] " ;
using (OOSHelper dbhelper = new OOSHelper())
{
using (IDataReader reader = dbhelper.ExecuteReader(sql))
{
while (reader.Read())
{
list.Add(A_CustomerInfo.SetValue(reader));
}
}
}
return list;
}
public A_CustomerInfo GetA_CustomerInfo( string _eRPNO)
{
A_CustomerInfo aCustomerinfo = null ;
StringBuilder sql = new StringBuilder();
sql.Append( " SELECT * FROM " );
sql.Append( " [A_Customer] " );
sql.Append( " WHERE " );
sql.Append( " [ERPNO]=@ERPNO " );
using (OOSHelper dbhelper = new OOSHelper())
{
IDbDataParameter[] p_Parms = new IDbDataParameter[]{
dbhelper.CreateParameter( " @ERPNO " ,_eRPNO)
};
using (IDataReader reader = dbhelper.ExecuteReader(sql.ToString(),p_Parms))
{
if (reader.Read())
{
aCustomerinfo = A_CustomerInfo.SetValue(reader);
}
}
}
return aCustomerinfo;
}
public bool Insert(A_CustomerInfo aCustomerinfo)
{
StringBuilder sql = new StringBuilder();
sql.Append( " INSERT INTO " );
sql.Append( " [A_Customer]( " );
sql.Append( " [ERPNO], " );
sql.Append( " [CorpName], " );
sql.Append( " [CorpAddress], " );
sql.Append( " [CorpPhone], " );
sql.Append( " [CorpContract], " );
sql.Append( " [CorpTax], " );
sql.Append( " [CorpBank], " );
sql.Append( " [CorpBankNO], " );
sql.Append( " [PayType], " );
sql.Append( " [CustomerType], " );
sql.Append( " [ERPContractType], " );
sql.Append( " [IsDirectShip], " );
sql.Append( " [IsEnabled], " );
sql.Append( " [UpdateTime], " );
sql.Append( " [CurrencyID], " );
sql.Append( " [NeedProformaInvoice] " );
sql.Append( " ) VALUES( " );
sql.Append( " @ERPNO, " );
sql.Append( " @CorpName, " );
sql.Append( " @CorpAddress, " );
sql.Append( " @CorpPhone, " );
sql.Append( " @CorpContract, " );
sql.Append( " @CorpTax, " );
sql.Append( " @CorpBank, " );
sql.Append( " @CorpBankNO, " );
sql.Append( " @PayType, " );
sql.Append( " @CustomerType, " );
sql.Append( " @ERPContractType, " );
sql.Append( " @IsDirectShip, " );
sql.Append( " @IsEnabled, " );
sql.Append( " @UpdateTime, " );
sql.Append( " @CurrencyID, " );
sql.Append( " @NeedProformaInvoice " );
sql.Append( " ) " );
using (OOSHelper dbhelper = new OOSHelper())
{
IDbDataParameter[] p_Parms = new IDbDataParameter[]{
dbhelper.CreateParameter( " @ERPNO " ,aCustomerinfo.ERPNO),
dbhelper.CreateParameter( " @CorpName " ,aCustomerinfo.CorpName),
dbhelper.CreateParameter( " @CorpAddress " ,aCustomerinfo.CorpAddress),
dbhelper.CreateParameter( " @CorpPhone " ,aCustomerinfo.CorpPhone),
dbhelper.CreateParameter( " @CorpContract " ,aCustomerinfo.CorpContract),
dbhelper.CreateParameter( " @CorpTax " ,aCustomerinfo.CorpTax),
dbhelper.CreateParameter( " @CorpBank " ,aCustomerinfo.CorpBank),
dbhelper.CreateParameter( " @CorpBankNO " ,aCustomerinfo.CorpBankNO),
dbhelper.CreateParameter( " @PayType " ,aCustomerinfo.PayType),
dbhelper.CreateParameter( " @CustomerType " ,aCustomerinfo.CustomerType),
dbhelper.CreateParameter( " @ERPContractType " ,aCustomerinfo.ERPContractType),
dbhelper.CreateParameter( " @IsDirectShip " ,aCustomerinfo.IsDirectShip),
dbhelper.CreateParameter( " @IsEnabled " ,aCustomerinfo.IsEnabled),
dbhelper.CreateParameter( " @UpdateTime " ,aCustomerinfo.UpdateTime),
dbhelper.CreateParameter( " @CurrencyID " ,aCustomerinfo.CurrencyID),
dbhelper.CreateParameter( " @NeedProformaInvoice " ,aCustomerinfo.NeedProformaInvoice)
};
return 0 < dbhelper.ExecuteNonQuery(sql.ToString(),p_Parms);
}
}
public bool Update(A_CustomerInfo aCustomerinfo)
{
StringBuilder sql = new StringBuilder();
sql.Append( " UPDATE " );
sql.Append( " [A_Customer] " );
sql.Append( " SET " );
sql.Append( " [CorpName]=@CorpName, " );
sql.Append( " [CorpAddress]=@CorpAddress, " );
sql.Append( " [CorpPhone]=@CorpPhone, " );
sql.Append( " [CorpContract]=@CorpContract, " );
sql.Append( " [CorpTax]=@CorpTax, " );
sql.Append( " [CorpBank]=@CorpBank, " );
sql.Append( " [CorpBankNO]=@CorpBankNO, " );
sql.Append( " [PayType]=@PayType, " );
sql.Append( " [CustomerType]=@CustomerType, " );
sql.Append( " [ERPContractType]=@ERPContractType, " );
sql.Append( " [IsDirectShip]=@IsDirectShip, " );
sql.Append( " [IsEnabled]=@IsEnabled, " );
sql.Append( " [UpdateTime]=@UpdateTime, " );
sql.Append( " [CurrencyID]=@CurrencyID, " );
sql.Append( " [NeedProformaInvoice]=@NeedProformaInvoice " );
sql.Append( " WHERE " );
sql.Append( " [ERPNO]=@ERPNO " );
using (OOSHelper dbhelper = new OOSHelper())
{
IDbDataParameter[] p_Parms = new IDbDataParameter[]{
dbhelper.CreateParameter( " @CorpName " ,aCustomerinfo.CorpName),
dbhelper.CreateParameter( " @CorpAddress " ,aCustomerinfo.CorpAddress),
dbhelper.CreateParameter( " @CorpPhone " ,aCustomerinfo.CorpPhone),
dbhelper.CreateParameter( " @CorpContract " ,aCustomerinfo.CorpContract),
dbhelper.CreateParameter( " @CorpTax " ,aCustomerinfo.CorpTax),
dbhelper.CreateParameter( " @CorpBank " ,aCustomerinfo.CorpBank),
dbhelper.CreateParameter( " @CorpBankNO " ,aCustomerinfo.CorpBankNO),
dbhelper.CreateParameter( " @PayType " ,aCustomerinfo.PayType),
dbhelper.CreateParameter( " @CustomerType " ,aCustomerinfo.CustomerType),
dbhelper.CreateParameter( " @ERPContractType " ,aCustomerinfo.ERPContractType),
dbhelper.CreateParameter( " @IsDirectShip " ,aCustomerinfo.IsDirectShip),
dbhelper.CreateParameter( " @IsEnabled " ,aCustomerinfo.IsEnabled),
dbhelper.CreateParameter( " @UpdateTime " ,aCustomerinfo.UpdateTime),
dbhelper.CreateParameter( " @CurrencyID " ,aCustomerinfo.CurrencyID),
dbhelper.CreateParameter( " @NeedProformaInvoice " ,aCustomerinfo.NeedProformaInvoice),
dbhelper.CreateParameter( " @ERPNO " ,aCustomerinfo.ERPNO)
};
return 0 < dbhelper.ExecuteNonQuery(sql.ToString(),p_Parms);
}
}
public bool Delete( string _eRPNO)
{
StringBuilder sql = new StringBuilder();
sql.Append( " DELETE FROM " );
sql.Append( " [A_Customer] " );
sql.Append( " WHERE " );
sql.Append( " [ERPNO]=@ERPNO " );
using (OOSHelper dbhelper = new OOSHelper())
{
IDbDataParameter[] p_Parms = new IDbDataParameter[]{
dbhelper.CreateParameter( " @ERPNO " ,_eRPNO)
};
return 0 < dbhelper.ExecuteNonQuery(sql.ToString(),p_Parms);
}
}
}
}
还有一种是采用静态调用的方式(尤其在对一些简单数据访问时为了方便就用静态调用方式):
public class WebServiceDAL
{
public DataTable Test()
{
string sql = "select * from test";
return OOSHelper.StaticExecuteTable(System.Data.CommandType.Text, sql);
}
}
以上文章是小弟经过多年的经验无聊的时候想到的,该代码已经经过我的压力测试。
不好意思,小弟语文从高中以后从没有及格过,文章没有几个字,但是想分享给大家看看,提提意见,不懂可直接mail给我,