亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

asp.net下Oracle,SQL Server,Access萬能數據庫通用類

2024-07-10 13:25:30
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:


using System;
using System.Collections;
using System.Collections.Specialized;
using System.Data;
using System.Data.SqlClient;
using System.Data.OleDb;
using System.Data.OracleClient;
using System.Configuration;
using System.Reflection;

namespace SystemFramework.DAL
{
/**//// <summary>
/// All rights reserved
/// 數據訪問基礎類
/// 用戶可以修改滿足自己項目的需要。
/// </summary>
public class DataBaseLayer
{
//數據庫連接字符串(web.config來配置)
//<add key="ConnectionString" value="server=127.0.0.1;database=DATABASE;uid=sa;pwd=" />
private string connectionString;
public string ConntionString
{
get
{
return connectionString ;
}
set
{
connectionString = value;
}
}


public DataBaseLayer(string strConnect,string dataType)
{
this.ConntionString = strConnect;
this.DbType = dataType;
}


public DataBaseLayer()
{
this.connectionString = ConfigurationSettings.AppSettings["ConnectionString"] ;
this.dbType = ConfigurationSettings.AppSettings["DataType"] ;
}

/**//// <summary>
/// 數據庫類型
/// </summary>
private string dbType;
public string DbType
{
get
{
if ( dbType == string.Empty || dbType == null )
{
return "Access";
}
else
{
return dbType;
}
}
set
{
if ( value != string.Empty && value != null )
{
dbType = value;
}
if (dbType ==string.Empty || dbType == null)
{
dbType = ConfigurationSettings.AppSettings["DataType"];
}
if ( dbType == string.Empty || dbType == null )
{
dbType = "Access";
}
}
}




轉換參數#region 轉換參數
private System.Data.IDbDataParameter iDbPara(string ParaName,string DataType)
{
switch(this.DbType)
{
case "SqlServer":
return GetSqlPara(ParaName,DataType);

case "Oracle":
return GetOleDbPara(ParaName,DataType);

case "Access":
return GetOleDbPara(ParaName,DataType);

default :
return GetSqlPara(ParaName,DataType);

}
}

private System.Data.SqlClient.SqlParameter GetSqlPara( string ParaName , string DataType)
{
switch(DataType)
{
case "Decimal":
return new System.Data.SqlClient.SqlParameter ( ParaName, System.Data.SqlDbType.Decimal );
case "Varchar":
return new System.Data.SqlClient.SqlParameter ( ParaName, System.Data.SqlDbType.VarChar );
case "DateTime":
return new System.Data.SqlClient.SqlParameter ( ParaName, System.Data.SqlDbType.DateTime );
case "Iamge":
return new System.Data.SqlClient.SqlParameter ( ParaName, System.Data.SqlDbType.Image );
case "Int":
return new System.Data.SqlClient.SqlParameter ( ParaName, System.Data.SqlDbType.Int );
case "Text":
return new System.Data.SqlClient.SqlParameter ( ParaName, System.Data.SqlDbType.NText );
default :
return new System.Data.SqlClient.SqlParameter ( ParaName, System.Data.SqlDbType.VarChar );
}
}

private System.Data.OracleClient.OracleParameter GetOraclePara( string ParaName , string DataType)
{
switch(DataType)
{
case "Decimal":
return new System.Data.OracleClient.OracleParameter( ParaName, System.Data.OracleClient.OracleType.Double);

case "Varchar":
return new System.Data.OracleClient.OracleParameter ( ParaName, System.Data.OracleClient.OracleType.VarChar );

case "DateTime":
return new System.Data.OracleClient.OracleParameter ( ParaName, System.Data.OracleClient.OracleType.DateTime );

case "Iamge":
return new System.Data.OracleClient.OracleParameter ( ParaName, System.Data.OracleClient.OracleType.BFile );

case "Int":
return new System.Data.OracleClient.OracleParameter ( ParaName, System.Data.OracleClient.OracleType.Int32 );

case "Text":
return new System.Data.OracleClient.OracleParameter ( ParaName, System.Data.OracleClient.OracleType.LongVarChar );

default:
return new System.Data.OracleClient.OracleParameter ( ParaName, System.Data.OracleClient.OracleType.VarChar );

}
}

private System.Data.OleDb.OleDbParameter GetOleDbPara( string ParaName , string DataType)
{
switch(DataType)
{
case "Decimal":
return new System.Data.OleDb.OleDbParameter( ParaName, System.Data.DbType.Decimal);

case "Varchar":
return new System.Data.OleDb.OleDbParameter ( ParaName, System.Data.DbType.String );

case "DateTime":
return new System.Data.OleDb.OleDbParameter ( ParaName, System.Data.DbType.DateTime );

case "Iamge":
return new System.Data.OleDb.OleDbParameter( ParaName, System.Data.DbType.Binary );

case "Int":
return new System.Data.OleDb.OleDbParameter ( ParaName, System.Data.DbType.Int32 );

case "Text":
return new System.Data.OleDb.OleDbParameter ( ParaName, System.Data.DbType.String );

default:
return new System.Data.OleDb.OleDbParameter ( ParaName, System.Data.DbType.String );

}
}

#endregion

創建 Connection 和 Command#region 創建 Connection 和 Command

private IDbConnection GetConnection()
{
switch(this.DbType)
{
case "SqlServer":
return new System.Data.SqlClient.SqlConnection(this.ConntionString);

case "Oracle":
return new System.Data.OracleClient.OracleConnection(this.ConntionString);

case "Access":
return new System.Data.OleDb.OleDbConnection(this.ConntionString);
default:
return new System.Data.SqlClient.SqlConnection(this.ConntionString);
}
}


private IDbCommand GetCommand(string Sql,IDbConnection iConn)
{
switch(this.DbType)
{
case "SqlServer":
return new System.Data.SqlClient.SqlCommand(Sql,(SqlConnection)iConn);

case "Oracle":
return new System.Data.OracleClient.OracleCommand(Sql,(OracleConnection)iConn);

case "Access":
return new System.Data.OleDb.OleDbCommand(Sql,(OleDbConnection)iConn);
default:
return new System.Data.SqlClient.SqlCommand(Sql,(SqlConnection)iConn);
}
}

private IDbCommand GetCommand()
{
switch(this.DbType)
{
case "SqlServer":
return new System.Data.SqlClient.SqlCommand();

case "Oracle":
return new System.Data.OracleClient.OracleCommand();

case "Access":
return new System.Data.OleDb.OleDbCommand();
default:
return new System.Data.SqlClient.SqlCommand();
}
}

private IDataAdapter GetAdapater(string Sql,IDbConnection iConn)
{
switch(this.DbType)
{
case "SqlServer":
return new System.Data.SqlClient.SqlDataAdapter(Sql,(SqlConnection)iConn);

case "Oracle":
return new System.Data.OracleClient.OracleDataAdapter(Sql,(OracleConnection)iConn);

case "Access":
return new System.Data.OleDb.OleDbDataAdapter(Sql,(OleDbConnection)iConn);

default:
return new System.Data.SqlClient.SqlDataAdapter(Sql,(SqlConnection)iConn);;
}

}

private IDataAdapter GetAdapater()
{
switch(this.DbType)
{
case "SqlServer":
return new System.Data.SqlClient.SqlDataAdapter();

case "Oracle":
return new System.Data.OracleClient.OracleDataAdapter();

case "Access":
return new System.Data.OleDb.OleDbDataAdapter();

default:
return new System.Data.SqlClient.SqlDataAdapter();
}
}

private IDataAdapter GetAdapater(IDbCommand iCmd)
{
switch(this.DbType)
{
case "SqlServer":
return new System.Data.SqlClient.SqlDataAdapter((SqlCommand)iCmd);

case "Oracle":
return new System.Data.OracleClient.OracleDataAdapter((OracleCommand)iCmd);

case "Access":
return new System.Data.OleDb.OleDbDataAdapter((OleDbCommand)iCmd);

default:
return new System.Data.SqlClient.SqlDataAdapter((SqlCommand)iCmd);
}
}
#endregion

執行簡單SQL語句#region 執行簡單SQL語句
/**//// <summary>
/// 執行SQL語句,返回影響的記錄數
/// </summary>
/// <param>SQL語句</param>
/// <returns>影響的記錄數</returns>
public int ExecuteSql(string SqlString)
{
using (System.Data.IDbConnection iConn = this.GetConnection())
{
using (System.Data.IDbCommand iCmd = GetCommand(SqlString,iConn))
{
iConn.Open();
try
{

int rows=iCmd.ExecuteNonQuery();
return rows;
}
catch(System.Exception E)
{
throw new Exception(E.Message);
}
finally
{
if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}
}
}
}

/**//// <summary>
/// 執行多條SQL語句,實現數據庫事務。
/// </summary>
/// <param>多條SQL語句</param>
public void ExecuteSqlTran(ArrayList SQLStringList)
{
using (System.Data.IDbConnection iConn = this.GetConnection())
{
iConn.Open();
using(System.Data.IDbCommand iCmd = GetCommand())
{
iCmd.Connection=iConn;
using(System.Data.IDbTransaction iDbTran = iConn.BeginTransaction())
{
iCmd.Transaction=iDbTran;
try
{
for(int n=0;n<SQLStringList.Count;n++)
{
string strsql = SQLStringList[n].ToString();
if ( strsql.Trim().Length>1)
{
iCmd.CommandText = strsql;
iCmd.ExecuteNonQuery();
}
}
iDbTran.Commit();
}
catch(System.Exception E)
{
iDbTran.Rollback();
throw new Exception(E.Message);
}
finally
{
if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}
}

}

}
}
/**//// <summary>
/// 執行帶一個存儲過程參數的的SQL語句。
/// </summary>
/// <param>SQL語句</param>
/// <param>參數內容,比如一個字段是格式復雜的文章,有特殊符號,可以通過這個方式添加</param>
/// <returns>影響的記錄數</returns>
public int ExecuteSql(string SqlString,string content)
{
using (System.Data.IDbConnection iConn = this.GetConnection())
{
using(System.Data.IDbCommand iCmd = GetCommand(SqlString,iConn))
{
System.Data.IDataParameter myParameter = this.iDbPara( "@content", "Text");
myParameter.Value = content ;
iCmd.Parameters.Add(myParameter);
iConn.Open();
try
{

int rows = iCmd.ExecuteNonQuery();
return rows;
}
catch( System.Exception e )
{
throw new Exception(e.Message);
}
finally
{
if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}
}
}
}


/**//// <summary>
/// 向數據庫里插入圖像格式的字段(和上面情況類似的另一種實例)
/// </summary>
/// <param>SQL語句</param>
/// <param>圖像字節,數據庫的字段類型為image的情況</param>
/// <returns>影響的記錄數</returns>
public int ExecuteSqlInsertImg(string SqlString,byte[] fs)
{
using (System.Data.IDbConnection iConn = this.GetConnection())
{
using(System.Data.IDbCommand iCmd = GetCommand(SqlString,iConn))
{
System.Data.IDataParameter myParameter = this.iDbPara( "@content", "Image");
myParameter.Value = fs ;
iCmd.Parameters.Add(myParameter);
iConn.Open();
try
{
int rows = iCmd.ExecuteNonQuery();
return rows;
}
catch( System.Exception e )
{
throw new Exception(e.Message);
}
finally
{
if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}
}
}
}

/**//// <summary>
/// 執行一條計算查詢結果語句,返回查詢結果(object)。
/// </summary>
/// <param>計算查詢結果語句</param>
/// <returns>查詢結果(object)</returns>
public object GetSingle(string SqlString)
{
using (System.Data.IDbConnection iConn = GetConnection())
{
using (System.Data.IDbCommand iCmd = GetCommand(SqlString,iConn))
{
iConn.Open();
try
{
object obj = iCmd.ExecuteScalar();
if((Object.Equals(obj,null))||(Object.Equals(obj,System.DBNull.Value)))
{
return null;
}
else
{
return obj;
}
}
catch(System.Exception e)
{
throw new Exception(e.Message);
}
finally
{
if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}
}
}
}
/**//// <summary>
/// 執行查詢語句,返回IDataAdapter
/// </summary>
/// <param>查詢語句</param>
/// <returns>IDataAdapter</returns>
public IDataAdapter ExecuteReader(string strSQL)
{
using (System.Data.IDbConnection iConn = this.GetConnection())
{
iConn.Open();
try
{
System.Data.IDataAdapter iAdapter = this.GetAdapater(strSQL,iConn);
return iAdapter;
}
catch(System.Exception e)
{
throw new Exception(e.Message);
}
finally
{
if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}
}
}
/**//// <summary>
/// 執行查詢語句,返回DataSet
/// </summary>
/// <param>查詢語句</param>
/// <returns>DataSet</returns>
public DataSet Query(string sqlString)
{
using (System.Data.IDbConnection iConn = this.GetConnection())
{
using(System.Data.IDbCommand iCmd = GetCommand(sqlString,iConn))
{
DataSet ds = new DataSet();
iConn.Open();
try
{
System.Data.IDataAdapter iAdapter = this.GetAdapater(sqlString,iConn);
iAdapter.Fill(ds);
return ds;
}
catch(System.Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}
}
}
}

/**//// <summary>
/// 執行查詢語句,返回DataSet
/// </summary>
/// <param>查詢語句</param>
/// <param>要填充的DataSet</param>
/// <param>要填充的表名</param>
/// <returns>DataSet</returns>
public DataSet Query(string sqlString,DataSet dataSet,string tableName)
{
using (System.Data.IDbConnection iConn = this.GetConnection())
{
using(System.Data.IDbCommand iCmd = GetCommand(sqlString,iConn))
{
iConn.Open();
try
{
System.Data.IDataAdapter iAdapter = this.GetAdapater(sqlString,iConn);
((OleDbDataAdapter)iAdapter).Fill(dataSet,tableName);
return dataSet;
}
catch(System.Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}
}
}
}


/**//// <summary>
/// 執行SQL語句 返回存儲過程
/// </summary>
/// <param>Sql語句</param>
/// <param>要填充的DataSet</param>
/// <param>開始記錄</param>
/// <param>頁面記錄大小</param>
/// <param>表名稱</param>
/// <returns>DataSet</returns>
public DataSet Query(string sqlString , DataSet dataSet ,int startIndex ,int pageSize, string tableName )
{
using (System.Data.IDbConnection iConn = this.GetConnection())
{
iConn.Open();
try
{
System.Data.IDataAdapter iAdapter = this.GetAdapater(sqlString,iConn);

((OleDbDataAdapter)iAdapter).Fill(dataSet,startIndex,pageSize,tableName);

return dataSet;
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}
}
}


/**//// <summary>
/// 執行查詢語句,向XML文件寫入數據
/// </summary>
/// <param>查詢語句</param>
/// <param>XML文件路徑</param>
public void WriteToXml(string sqlString,string xmlPath)
{
Query(sqlString).WriteXml(xmlPath);
}

/**//// <summary>
/// 執行查詢語句
/// </summary>
/// <param>查詢語句</param>
/// <returns>DataTable </returns>
public DataTable ExecuteQuery(string sqlString)
{
using (System.Data.IDbConnection iConn = this.GetConnection())
{
//System.Data.IDbCommand iCmd = GetCommand(sqlString,iConn);
DataSet ds = new DataSet();
try
{
System.Data.IDataAdapter iAdapter = this.GetAdapater(sqlString,iConn);
iAdapter.Fill(ds);
}
catch(System.Exception e)
{
throw new Exception(e.Message);
}
finally
{
if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}
return ds.Tables[0];
}
}

/**//// <summary>
/// 執行查詢語句
/// </summary>
/// <param>查詢語句</param>
/// <returns>DataTable </returns>
public DataTable ExecuteQuery(string SqlString,string Proc)
{
using (System.Data.IDbConnection iConn = this.GetConnection())
{
using(System.Data.IDbCommand iCmd = GetCommand(SqlString,iConn))
{
iCmd.CommandType = CommandType.StoredProcedure;
DataSet ds = new DataSet();
try
{
System.Data.IDataAdapter iDataAdapter = this.GetAdapater(SqlString,iConn);
iDataAdapter.Fill(ds);
}
catch(System.Exception e)
{
throw new Exception(e.Message);
}
finally
{
if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}
return ds.Tables[0];
}


}
}

/**//// <summary>
///
/// </summary>
/// <param></param>
/// <returns></returns>
public DataView ExeceuteDataView(string Sql)
{
using (System.Data.IDbConnection iConn = this.GetConnection())
{
using(System.Data.IDbCommand iCmd = GetCommand(Sql,iConn))
{
DataSet ds = new DataSet();
try
{
System.Data.IDataAdapter iDataAdapter = this.GetAdapater(Sql,iConn);
iDataAdapter.Fill(ds);
return ds.Tables[0].DefaultView;
}
catch(System.Exception e)
{
throw new Exception(e.Message);
}
finally
{
if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}
}
}
}

#endregion

執行帶參數的SQL語句#region 執行帶參數的SQL語句
/**//// <summary>
/// 執行SQL語句,返回影響的記錄數
/// </summary>
/// <param>SQL語句</param>
/// <returns>影響的記錄數</returns>
public int ExecuteSql(string SQLString,params IDataParameter[] iParms)
{
using (System.Data.IDbConnection iConn = this.GetConnection())
{
System.Data.IDbCommand iCmd = GetCommand();
{
try
{
PrepareCommand(out iCmd, iConn, null , SQLString, iParms );
int rows=iCmd.ExecuteNonQuery();
iCmd.Parameters.Clear();
return rows;
}
catch(System.Exception E)
{
throw new Exception( E.Message );
}
finally
{
iCmd.Dispose();
if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}
}
}
}


/**//// <summary>
/// 執行多條SQL語句,實現數據庫事務。
/// </summary>
/// <param>SQL語句的哈希表(key為sql語句,value是該語句的SqlParameter[])</param>
public void ExecuteSqlTran(Hashtable SQLStringList)
{
using (System.Data.IDbConnection iConn = this.GetConnection())
{
iConn.Open();
using (IDbTransaction iTrans = iConn.BeginTransaction())
{
System.Data.IDbCommand iCmd = GetCommand();
try
{
//循環
foreach ( DictionaryEntry myDE in SQLStringList)
{
string cmdText = myDE.Key.ToString();
IDataParameter[] iParms=( IDataParameter[] ) myDE.Value;
PrepareCommand( out iCmd , iConn , iTrans , cmdText , iParms );
int val = iCmd.ExecuteNonQuery();
iCmd.Parameters.Clear();
}
iTrans.Commit();
}
catch
{
iTrans.Rollback();
throw;
}
finally
{
iCmd.Dispose();
if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}

}
}
}


/**//// <summary>
/// 執行一條計算查詢結果語句,返回查詢結果(object)。
/// </summary>
/// <param>計算查詢結果語句</param>
/// <returns>查詢結果(object)</returns>
public object GetSingle(string SQLString,params IDataParameter[] iParms)
{
using (System.Data.IDbConnection iConn = this.GetConnection())
{
System.Data.IDbCommand iCmd = GetCommand();
{
try
{
PrepareCommand( out iCmd, iConn, null , SQLString, iParms );
object obj = iCmd.ExecuteScalar();
iCmd.Parameters.Clear();
if((Object.Equals(obj,null))||(Object.Equals(obj,System.DBNull.Value)))
{
return null;
}
else
{
return obj;
}
}
catch(System.Exception e)
{
throw new Exception(e.Message);
}
finally
{
iCmd.Dispose();
if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}
}
}
}

/**//// <summary>
/// 執行查詢語句,返回IDataReader
/// </summary>
/// <param>查詢語句</param>
/// <returns> IDataReader </returns>
public IDataReader ExecuteReader(string SQLString,params IDataParameter[] iParms)
{
System.Data.IDbConnection iConn = this.GetConnection();
{
System.Data.IDbCommand iCmd = GetCommand();
{
try
{
PrepareCommand(out iCmd, iConn , null , SQLString , iParms);
System.Data.IDataReader iReader = iCmd.ExecuteReader();
iCmd.Parameters.Clear();
return iReader;
}
catch(System.Exception e)
{
throw new Exception(e.Message);
}
finally
{
iCmd.Dispose();
if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}
}
}
}

/**//// <summary>
/// 執行查詢語句,返回DataSet
/// </summary>
/// <param>查詢語句</param>
/// <returns>DataSet</returns>
public DataSet Query(string sqlString,params IDataParameter[] iParms)
{
using (System.Data.IDbConnection iConn = this.GetConnection())
{
IDbCommand iCmd = GetCommand();
{
PrepareCommand(out iCmd , iConn , null , sqlString , iParms );
try
{
IDataAdapter iAdapter = this.GetAdapater(sqlString,iConn);
DataSet ds = new DataSet();
iAdapter.Fill(ds);
iCmd.Parameters.Clear();
return ds;
}
catch(System.Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
iCmd.Dispose();
if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}
}
}
}


/**//// <summary>
/// 初始化Command
/// </summary>
/// <param></param>
/// <param></param>
/// <param></param>
/// <param></param>
/// <param></param>
private void PrepareCommand(out IDbCommand iCmd,IDbConnection iConn,System.Data.IDbTransaction iTrans, string cmdText, IDataParameter[] iParms)
{
if (iConn.State != ConnectionState.Open)
iConn.Open();
iCmd = this.GetCommand();
iCmd.Connection = iConn;
iCmd.CommandText = cmdText;
if (iTrans != null)
iCmd.Transaction = iTrans;
iCmd.CommandType = CommandType.Text;//cmdType;
if (iParms != null)
{
foreach (IDataParameter parm in iParms)
iCmd.Parameters.Add(parm);
}
}

#endregion

存儲過程操作#region 存儲過程操作

/**//// <summary>
/// 執行存儲過程
/// </summary>
/// <param>存儲過程名</param>
/// <param>存儲過程參數</param>
/// <returns>SqlDataReader</returns>
public SqlDataReader RunProcedure(string storedProcName, IDataParameter[] parameters )
{
System.Data.IDbConnection iConn = this.GetConnection();
{
iConn.Open();

using(SqlCommand sqlCmd = BuildQueryCommand(iConn,storedProcName, parameters))
{
return sqlCmd.ExecuteReader(CommandBehavior.CloseConnection);
}
}
}

/**//// <summary>
/// 執行存儲過程
/// </summary>
/// <param>存儲過程名</param>
/// <param>存儲過程參數</param>
/// <param>DataSet結果中的表名</param>
/// <returns>DataSet</returns>
public DataSet RunProcedure(string storedProcName, IDataParameter[] parameters ,string tableName)
{

using (System.Data.IDbConnection iConn = this.GetConnection())
{
DataSet dataSet = new DataSet();
iConn.Open();
System.Data.IDataAdapter iDA = this.GetAdapater();
iDA = this.GetAdapater( BuildQueryCommand(iConn, storedProcName, parameters ) );

((SqlDataAdapter)iDA).Fill( dataSet,tableName);
if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
return dataSet;
}
}



/**//// <summary>
/// 執行存儲過程
/// </summary>
/// <param>存儲過程名</param>
/// <param>存儲過程參數</param>
/// <param>DataSet結果中的表名</param>
/// <param>開始記錄索引</param>
/// <param>頁面記錄大小</param>
/// <returns>DataSet</returns>
public DataSet RunProcedure(string storedProcName, IDataParameter[] parameters ,int startIndex,int pageSize,string tableName)
{

using (System.Data.IDbConnection iConn = this.GetConnection())
{
DataSet dataSet = new DataSet();
iConn.Open();
System.Data.IDataAdapter iDA = this.GetAdapater();
iDA = this.GetAdapater( BuildQueryCommand(iConn, storedProcName, parameters ) );

((SqlDataAdapter)iDA).Fill( dataSet,startIndex,pageSize,tableName);
if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
return dataSet;
}
}

/**//// <summary>
/// 執行存儲過程 填充已經存在的DataSet數據集
/// </summary>
/// <param>存儲過程名稱</param>
/// <param>存儲過程參數</param>
/// <param>要填充的數據集</param>
/// <param>要填充的表名</param>
/// <returns></returns>
public DataSet RunProcedure(string storeProcName,IDataParameter[] parameters,DataSet dataSet,string tableName)
{
using (System.Data.IDbConnection iConn = this.GetConnection())
{
iConn.Open();
System.Data.IDataAdapter iDA = this.GetAdapater();
iDA = this.GetAdapater(BuildQueryCommand(iConn,storeProcName,parameters));

((SqlDataAdapter)iDA).Fill(dataSet,tableName);

if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}

return dataSet;
}
}

/**//// <summary>
/// 執行存儲過程并返回受影響的行數
/// </summary>
/// <param></param>
/// <param></param>
/// <returns></returns>
public int RunProcedureNoQuery(string storedProcName, IDataParameter[] parameters )
{

int result = 0;
using (System.Data.IDbConnection iConn = this.GetConnection())
{
iConn.Open();
using(SqlCommand scmd = BuildQueryCommand(iConn,storedProcName,parameters))
{
result = scmd.ExecuteNonQuery();
}

if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
}

return result ;
}

public string RunProcedureExecuteScalar(string storeProcName,IDataParameter[] parameters)
{
string result = string.Empty;
using (System.Data.IDbConnection iConn = this.GetConnection())
{

iConn.Open();
using(SqlCommand scmd = BuildQueryCommand(iConn,storeProcName,parameters))
{
object obj = scmd.ExecuteScalar();
if(obj == null)
result = null;
else
result = obj.ToString();
}

if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}

}

return result;
}

/**//// <summary>
/// 構建 SqlCommand 對象(用來返回一個結果集,而不是一個整數值)
/// </summary>
/// <param>數據庫連接</param>
/// <param>存儲過程名</param>
/// <param>存儲過程參數</param>
/// <returns>SqlCommand</returns>
private SqlCommand BuildQueryCommand(IDbConnection iConn,string storedProcName, IDataParameter[] parameters)
{

IDbCommand iCmd = GetCommand(storedProcName,iConn);
iCmd.CommandType = CommandType.StoredProcedure;
if (parameters == null)
{
return (SqlCommand)iCmd;
}
foreach (IDataParameter parameter in parameters)
{
iCmd.Parameters.Add( parameter );
}
return (SqlCommand)iCmd;
}

/**//// <summary>
/// 執行存儲過程,返回影響的行數
/// </summary>
/// <param>存儲過程名</param>
/// <param>存儲過程參數</param>
/// <param>影響的行數</param>
/// <returns></returns>
public int RunProcedure(string storedProcName, IDataParameter[] parameters, out int rowsAffected )
{
using (System.Data.IDbConnection iConn = this.GetConnection())
{
int result;
iConn.Open();
using(SqlCommand sqlCmd = BuildIntCommand(iConn,storedProcName, parameters ))
{
rowsAffected = sqlCmd.ExecuteNonQuery();
result = (int)sqlCmd.Parameters["ReturnValue"].Value;

if(iConn.State != ConnectionState.Closed)
{
iConn.Close();
}
return result;
}
}
}

/**//// <summary>
/// 創建 SqlCommand 對象實例(用來返回一個整數值)
/// </summary>
/// <param>存儲過程名</param>
/// <param>存儲過程參數</param>
/// <returns>SqlCommand 對象實例</returns>
private SqlCommand BuildIntCommand(IDbConnection iConn,string storedProcName, IDataParameter[] parameters)
{
SqlCommand sqlCmd = BuildQueryCommand(iConn,storedProcName, parameters );
sqlCmd.Parameters.Add( new SqlParameter ( "ReturnValue",
SqlDbType.Int,4,ParameterDirection.ReturnValue,
false,0,0,string.Empty,DataRowVersion.Default,null ));
return sqlCmd;
}
#endregion


}
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品videos性欧美| 久久伊人色综合| 亚洲性猛交xxxxwww| 日韩小视频在线观看| 日韩av资源在线播放| 国产精品久久久久久久久久久新郎| 亚洲福利在线视频| 精品无人国产偷自产在线| 精品久久久久久久久久ntr影视| 亚洲一区国产精品| 91久久精品国产| 国产成人短视频| 亚洲福利视频二区| 欧美日韩国产专区| 欧美亚洲第一页| 91精品免费视频| 国产精品99久久久久久人| 亚洲精品www久久久久久广东| 精品国产拍在线观看| 亚洲精品久久久久久久久| 美女国内精品自产拍在线播放| 欧美在线视频免费播放| 欧美在线性爱视频| 在线观看日韩www视频免费| 欧美激情免费在线| 97超级碰在线看视频免费在线看| 国产精品流白浆视频| 国产精品视频xxxx| 日韩精品免费一线在线观看| 欧美性视频网站| 国产精品欧美一区二区三区奶水| 精品国产精品三级精品av网址| 欧美性生交大片免费| 欧美乱妇40p| 久久777国产线看观看精品| 亚洲欧洲av一区二区| 国产精品国产三级国产aⅴ9色| 中文字幕日韩欧美| 国产日韩在线看| 一色桃子一区二区| 91在线免费网站| 亚洲欧美精品一区二区| 全亚洲最色的网站在线观看| 日本成人在线视频网址| 91超碰caoporn97人人| 亚洲free嫩bbb| 在线视频亚洲欧美| 日韩一区二区精品视频| 国产激情视频一区| 欧美大片免费观看在线观看网站推荐| 91国偷自产一区二区三区的观看方式| 国产精品xxxxx| 欧美激情第1页| 亚洲偷熟乱区亚洲香蕉av| 日韩精品亚洲元码| 亚洲在线观看视频| 久久av在线播放| 久久久久国产精品www| 欧美激情在线狂野欧美精品| 777国产偷窥盗摄精品视频| 久久国产精品电影| 精品少妇一区二区30p| 2019中文字幕在线免费观看| 欧美亚洲视频在线观看| 欧美日韩美女视频| 一本大道亚洲视频| 精品国产91久久久久久| 亚洲韩国青草视频| 欧美成aaa人片免费看| 国产精品久久久久免费a∨大胸| 色久欧美在线视频观看| 亚洲一区亚洲二区亚洲三区| 久久精品国产一区二区三区| 亚洲精品国产欧美| 不卡伊人av在线播放| 欧美精品制服第一页| 欧美在线性视频| 在线日韩日本国产亚洲| 久久久久久久久久久国产| 91国产美女在线观看| 少妇高潮久久77777| 不卡在线观看电视剧完整版| 91sao在线观看国产| 日韩免费在线免费观看| 日韩中文在线不卡| 成人网在线观看| 91高清免费在线观看| 日韩av免费在线观看| 伦伦影院午夜日韩欧美限制| 亚洲欧美日韩天堂| 久热精品在线视频| 91tv亚洲精品香蕉国产一区7ujn| 欧美野外猛男的大粗鳮| 久久视频这里只有精品| 国产精品入口福利| 神马久久久久久| 秋霞av国产精品一区| 欧美另类在线观看| 亚洲精品美女久久久久| 中国人与牲禽动交精品| 国产精品久久久久久久久久久久| 中文字幕欧美日韩va免费视频| 神马久久桃色视频| 色综合91久久精品中文字幕| 日韩av一区在线| 在线日韩精品视频| 国产精品美女主播在线观看纯欲| 一区二区三区高清国产| 久久亚洲精品视频| 91国内揄拍国内精品对白| 国产精品黄色影片导航在线观看| 97精品一区二区视频在线观看| 国产专区欧美专区| 久久99视频免费| 亚洲高清一二三区| 国产精品香蕉国产| 亚洲精品色婷婷福利天堂| 久久久久久久激情视频| 青青久久av北条麻妃黑人| 欧美日韩亚洲精品内裤| 亚洲色图色老头| 国产狼人综合免费视频| 久久人人97超碰精品888| 91亚洲国产成人精品性色| 日本精品免费观看| 亚洲欧美日韩中文在线制服| 国内精品久久久久影院 日本资源| 日韩精品在线免费| 久久91亚洲精品中文字幕| 亚洲人成电影网| 欧美最顶级丰满的aⅴ艳星| 欧美激情视频在线观看| 日韩成人在线观看| 日韩中文字幕国产| 色樱桃影院亚洲精品影院| 亚洲国产精品99久久| 欧美剧在线观看| 久久久欧美精品| 欧美视频一区二区三区…| 亚洲性av在线| 久久躁日日躁aaaaxxxx| 亚洲精品美女久久久| 这里只有视频精品| 亚洲美女精品成人在线视频| 狠狠色香婷婷久久亚洲精品| 最近2019中文字幕大全第二页| 欧美一级电影久久| 国产女精品视频网站免费| 91久久综合亚洲鲁鲁五月天| 日韩综合视频在线观看| 欧美成人国产va精品日本一级| 国产欧美在线观看| 欧洲成人免费视频| 国产亚洲精品一区二555| 国模私拍视频一区| 久久久久久香蕉网| 影音先锋欧美精品| 98精品国产自产在线观看| 国产成人久久久精品一区| 日韩人体视频一二区| 一区二区三区四区精品| 国产成人一区三区| 亚洲国产欧美一区二区三区同亚洲| 国产成人精品免费久久久久|