www.pudn.com > Websharp2005.rar > MSSqlDataAccess.cs
using System;
using System.Data;
using System.Data.SqlClient;
using System.Xml;
namespace Websharp.Data
{
///
/// MSSqlDataAccess
///
public sealed class MSSqlDataAccess : AbstractDataAccess
{
#region Constructor
public MSSqlDataAccess(SqlConnection conn)
{
this.m_DbConnection=conn;
}
public MSSqlDataAccess(string connectionString)
{
this.m_DbConnection=new SqlConnection(connectionString);
}
#endregion
#region DataAccess
#region Support Property & method
public override DatabaseType DatabaseType
{
get{return DatabaseType.MSSQLServer;}
}
private SqlConnection m_DbConnection;
public override IDbConnection DbConnection
{
get
{
return m_DbConnection;
}
}
private SqlTransaction trans=null;
public override IDbTransaction BeginTransaction()
{
trans=m_DbConnection.BeginTransaction();
return trans;
}
#endregion Support Property & method
#region ExecuteNonQuery
public override int ExecuteNonQuery(CommandType commandType, string commandText, QueryParameterCollection commandParameters)
{
SqlCommand cmd=new SqlCommand();
PrepareCommand(cmd,commandType, commandText,commandParameters);
int tmpValue=cmd.ExecuteNonQuery();
SyncParameter(commandParameters);
cmd.Parameters.Clear();
return tmpValue;
}
#endregion ExecuteNonQuery
#region ExecuteDataSet
public override DataSet ExecuteDataset(CommandType commandType, string commandText, QueryParameterCollection commandParameters,DataSet ds,string tableName)
{
SqlCommand cmd=new SqlCommand();
PrepareCommand(cmd,commandType, commandText,commandParameters);
SqlDataAdapter da=new SqlDataAdapter(cmd);
if(Object.Equals(tableName,null) || (tableName.Length<1))
da.Fill(ds);
else
da.Fill(ds,tableName);
SyncParameter(commandParameters);
cmd.Parameters.Clear();
return ds;
}
#endregion ExecuteDataSet
#region ExecuteReader
public override IDataReader ExecuteReader(CommandType commandType, string commandText, QueryParameterCollection commandParameters)
{
SqlCommand cmd=new SqlCommand();
PrepareCommand(cmd,commandType, commandText,commandParameters);
SqlDataReader dr=cmd.ExecuteReader();
SyncParameter(commandParameters);
cmd.Parameters.Clear();
return dr;
}
#endregion ExecuteReader
#region ExecuteScalar
public override object ExecuteScalar(CommandType commandType, string commandText, QueryParameterCollection commandParameters)
{
SqlCommand cmd=new SqlCommand();
PrepareCommand(cmd,commandType, commandText,commandParameters);
object tmpValue=cmd.ExecuteScalar();
SyncParameter(commandParameters);
cmd.Parameters.Clear();
return tmpValue;
}
#endregion ExecuteScalar
#region ExecuteXmlReader
public override XmlReader ExecuteXmlReader(CommandType commandType, string commandText, QueryParameterCollection commandParameters)
{
SqlCommand cmd=new SqlCommand();
PrepareCommand(cmd,commandType, commandText,commandParameters);
XmlReader reader=cmd.ExecuteXmlReader();
SyncParameter(commandParameters);
cmd.Parameters.Clear();
return reader;
}
#endregion ExecuteXmlReader
#endregion
private void PrepareCommand(SqlCommand cmd,CommandType commandType, string commandText, QueryParameterCollection commandParameters)
{
cmd.CommandType=commandType;
cmd.CommandText=commandText;
cmd.Connection=this.m_DbConnection;
cmd.Transaction=trans;
if((commandParameters!=null) && (commandParameters.Count>0) )
{
for(int i=0;i