using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
namespace class_new
{
/// <summary>
/// DataClass 的摘要说明。
/// </summary>
public class DataClass
{
private string strConnection="";
private SqlConnection myConnection=null;
/// <summary>
/// 默认构造函数
/// </summary>
public DataClass()
{
strConnection=ConfigurationSettings.AppSettings["connstring"];
}
/// <summary>
/// 带参数的构造函数
/// </summary>
/// <param name="newConnectionString">数据库联接字符串</param>
public DataClass(string newConnectionString)
{
strConnection=newConnectionString;
}
/// <summary>
/// 打开数据库连接.
/// </summary>
private bool Open()
{
try
{
if(myConnection!=null)
{
if(myConnection.State==ConnectionState.Open)
{
myConnection.Close();
}
}
myConnection=new SqlConnection(strConnection.Trim());
myConnection.Open();
return true;
}
catch(Exception ex)
{
SystemError.SystemLog(ex.Message);
return false;
}
}
///<summary>
///关闭数据库连接
///</summary>
public void Close()
{
///判断连接是否已经创建
if (myConnection != null)
{ ///判断连接的状态是否已经打开
if (myConnection.State == ConnectionState.Open)
{
myConnection.Close();
}
}
}
/// <summary>
/// 释放资源
/// </summary>
public void Dispose()
{
// 确认连接是否已经关闭
if (myConnection != null)
{
myConnection.Dispose();
myConnection = null;
}
}
/// <summary>
/// 执行一条SQL语句,此语句直接操作数据库,不返回结果集
/// </summary>
/// <param name="strSql">SQL语句</param>
/// <param name="Numr">返回受影响的行数</param>
/// <returns>是否执行成功</returns>
public bool executeSql(string strSql,out int Num)
{
Num=0;
if(Open())
{
SqlTransaction myTrans = myConnection.BeginTransaction();
try
{
SqlCommand myCmd = new SqlCommand(strSql,myConnection,myTrans);
Num=myCmd.ExecuteNonQuery();
myTrans.Commit();
Close();
return true;
}
catch(Exception ex)
{
myTrans.Rollback();
SystemError.SystemLog(ex.Message);
Close();
return false;
}
}
return false;
}
/// <summary>
/// 执行SQL语句,返回数据 DataSet
/// </summary>
/// <param name="strSql"></param>
/// <returns></returns>
public DataSet getDataSet(string strSql)
{
DataSet dataSet1=null;
SqlDataAdapter adapter1;
if(Open())
{
try
{
adapter1=new SqlDataAdapter(strSql,myConnection);
dataSet1=new DataSet();
adapter1.Fill(dataSet1,"tablename");
}
catch
{
dataSet1=null;
}
finally
{
Close();///关闭已经打开的数据库连接
}
}
return dataSet1;
}
/// <summary>
/// 执行SQL语句,返回 DataReader
/// </summary>
/// <param name="strSql"></param>
/// <returns></returns>
public SqlDataReader ReturnDataReader(String strSql)
{
SqlDataReader read1=null;
if(Open())
{
try
{
SqlCommand cmd;
cmd=myConnection.CreateCommand();
cmd.CommandText=strSql;
read1=cmd.ExecuteReader();
}
catch
{
read1=null;
}
}
return read1;
}
}
}