当前位置:编程学习 > C#/ASP.NET >>

ado.net完成help类的定义,需要写些什么功能,怎么写?

求大神指点迷津,如果有代码给我参考参考,谢谢了 类 ADO.NET --------------------编程问答-------------------- 话说help类是干嘛的,是我没见识? --------------------编程问答-------------------- 网上一堆sqlhelper,还需要自己重新定义么? --------------------编程问答--------------------

using System;              
using System.Collections;      
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;

 

namespace SAP_Account
{
class DBHelper
{
        private  string sqlConnString;    // 数据库连接字符串        
private SqlConnection sqlConn = new SqlConnection();    // SQL数据库连接对象
private ConnectionState sqlConnPreState = ConnectionState.Closed;   //原来数据库的连接状态 

/// <summary>
/// 数据库连接字符串属性。
/// </summary>
public string SqlConnectionString
{
get
{
return sqlConnString;
}
set
{
sqlConnString = value;
sqlConn.ConnectionString = sqlConnString;
}
}

public DBHelper()
{
            sqlConnString = ConfigurationManager.ConnectionStrings["Conn2"].ToString();    // 数据库连接字符串   
            sqlConn.ConnectionString = sqlConnString;
}

/// <summary>
/// 构造函数。
/// </summary>
/// <param name="strSqlCon">数据库连接字符串。</param>
public DBHelper(string strSqlCon)
{
sqlConnString = strSqlCon;
sqlConn.ConnectionString = sqlConnString;
}

/// <summary>
/// 析构函数。
/// </summary>
~DBHelper()
{
try
{
Close();
sqlConn.Dispose();
}
catch (Exception ex)
{
throw ex;

}

/// <summary>
/// 打开数据库连接。
/// </summary>
public void Open()
{
try
{
if (sqlConn.State == ConnectionState.Closed)
{
sqlConn.Open();
sqlConnPreState = ConnectionState.Open;
}
}
catch (Exception ex)
{
throw ex;



/// <summary> 
/// 关闭数据库连接。
/// </summary>
public void Close()
{
try
{
if (sqlConn.State != ConnectionState.Closed)
{
sqlConn.Close();
sqlConnPreState = ConnectionState.Closed;
}
}
catch (Exception ex)
{
throw ex;
}
}

/// <summary>
/// 获取查询的数据集。
/// </summary>
/// <param name="strSQL">要查询的SQL语句。</param>
/// <param name="parametes">传入的参数,无参数时使用NULL。</param>
/// <returns></returns>
public DataSet GetDataSet(string strSQL, params SqlParameter[] parametes)
{
DataSet ds = new DataSet();
try
{
//sqlConn.Open();
if (sqlConn.State == ConnectionState.Closed && sqlConn.State == ConnectionState.Closed)        //若原来的状态为关闭且当前连接未打开
{
sqlConn.Open();
}
SqlCommand sqlCmd = sqlConn.CreateCommand();
sqlCmd.CommandText = strSQL;
if (parametes != null)
{
sqlCmd.Parameters.Clear();
sqlCmd.Parameters.AddRange(parametes);
}

SqlDataAdapter da = new SqlDataAdapter(sqlCmd);
da.Fill(ds);
sqlConn.Close();
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (sqlConnPreState == ConnectionState.Closed && sqlConn.State != ConnectionState.Closed)  //若原来的状态为关闭且者当前连接未关闭则关闭
{
sqlConn.Close();
}
}
return ds;
}

/// <summary>
/// 返回SqlDataReader对象。该函数需要在外部打开和关闭连接操作。
/// </summary>
/// <param name="strSQL">传入的SQL语句。</param>
/// <param name="parametes">传入的参数,无参数时使用NULL。</param>
/// <returns></returns>
public SqlDataReader ExecuteReader(string strSQL, params SqlParameter[] parametes)
{
SqlDataReader reader;
try
{
SqlCommand sqlCmd = sqlConn.CreateCommand();
sqlCmd.CommandText = strSQL;
if (parametes != null)
{
sqlCmd.Parameters.Clear();
sqlCmd.Parameters.AddRange(parametes);

reader = sqlCmd.ExecuteReader();
}
catch (Exception ex)
{
throw ex;
}
return reader;
}

 

/// <summary>
/// 返回执行T-SQL语句受影响的行数。
/// </summary>
/// <param name="strSQL">执行的SQL语句。</param>
/// <param name="parametes">传入的参数,无参数时使用NULL。</param>
/// <returns></returns>
public int ExecuteNonQuery(string strSQL, params SqlParameter[] parametes)

int sqlInt = -1;
try
{
if (sqlConn.State == ConnectionState.Closed && sqlConn.State == ConnectionState.Closed)        //若原来的状态为关闭且当前连接未打开
{
sqlConn.Open();
}
SqlCommand sqlCmd = sqlConn.CreateCommand();
sqlCmd.CommandText = strSQL;
if (parametes != null)
{
sqlCmd.Parameters.Clear();
sqlCmd.Parameters.AddRange(parametes);
}
sqlInt = sqlCmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}

finally
{
if (sqlConnPreState == ConnectionState.Closed && sqlConn.State != ConnectionState.Closed)  //若原来的状态为关闭且者当前连接未关闭则关闭
{
sqlConn.Close();
}
}
return sqlInt;

 

}

 

/// <summary>
/// 执行查询并返回第一行第一列的值。
/// </summary>
/// <param name="strSQL">执行的SQL语句。</param>
/// <param name="parametes">传入的参数,无参数时使用NULL。</param>
/// <returns></returns>
public object ExecuteScalar(string strSQL, params SqlParameter[] parametes)

{

object obj;

try

{

if (sqlConn.State == ConnectionState.Closed && sqlConn.State == ConnectionState.Closed)        //若原来的状态为关闭且当前连接未打开

{

sqlConn.Open();

}

 

SqlCommand sqlCmd = sqlConn.CreateCommand();

sqlCmd.CommandText = strSQL;

 

if (parametes != null)

{

sqlCmd.Parameters.Clear();

sqlCmd.Parameters.AddRange(parametes);

}

 

obj = sqlCmd.ExecuteScalar();

}

catch (Exception ex)

{

throw ex;

}

finally

{

if (sqlConnPreState == ConnectionState.Closed && sqlConn.State != ConnectionState.Closed)  //若原来的状态为关闭且者当前连接未关闭则关闭

{

sqlConn.Close();

}

}

return obj;

}


}

}

--------------------编程问答--------------------
引用 2 楼 xupeihuagudulei 的回复:
网上一堆sqlhelper,还需要自己重新定义么?


+1 --------------------编程问答-------------------- 搜索:SqlHelper
http://www.cnblogs.com/liwuyi/archive/2012/05/16/2505461.html
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,