说明:这个是专为新手(也是为了自己)写的一个数据库连接使用类,是正在完善更新的一个类,现在放出来的目的不是马上让大家使用,所以也没有把注解写的非常的详细.声明:我写这个的目的主要为了锻炼自己,尽管我知道现在已经有很多类似的类了,但是我还是决定来写一个,诚望各位高手多提意见,多多指教,先谢了!好了,废话少说了,下面帖代码
解决方案 »
- firefox 下报未找到元素,急 急 急!
- 取表中最大值问题
- 请教 DataList中放入一个Label控件怎么用????
- 成功连上SQL Server数据库了,但是找不到表!(用SqlConection组件连)
- 一个很简单的问题,有点急~~
- Regex 什么时间用?
- 高分求crystal report 10.0 的注册号
- 急急急,请高手解决!!!请高手解决!!!请高手解决!!!请高手解决!!!请高手解决!!!请高手解决!!!请高手解决!!!
- ASP中限制有效下载次数
- UpdatePanel 不换行的问题
- 如何实现重叠
- 在Asp.net里如何让textbox控件获得焦点后加载自定义的Web用户控件啊
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Collections;namespace Stm_DbBuild
{
public class DbBuilder
{
public DbBuilder()
{
}
//分别定义一个SqlConnection及SqlCommand对象,用于对数据库的操作
protected SqlConnection conn=new SqlConnection();
protected SqlCommand comm=new SqlCommand(); /// <summary>
/// 打开数据库连接1
/// </summary>
protected void OpenConnection()
{
CheckConnection();
}
/// <summary>
/// 检查数据库连接是否打开
/// </summary>
/// <returns>bool</returns>
public bool CheckConnection()
{
//如果数据连接是关闭的,则获取其连接字符串并打开
if (conn.State == ConnectionState.Closed)
{
try
{
//获取数据库连接字符串
conn.ConnectionString = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
comm.Connection = conn;
conn.Open();//打开连接
}
catch (Exception)
{
return false;
}
}
return true;
}
/// <summary>
/// 关闭当前数据库连接
/// </summary>
protected void CloseConnection()
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
conn.Dispose();
comm.Dispose();
}
/// <summary>
/// 执行SQL查询语句
/// </summary>
/// <param name="sqlText">传入的SQL语句</param>
public void ExcuteSql(string sqlText)
{
try
{
OpenConnection();//打开数据库连接
comm.CommandType = CommandType.Text;
comm.CommandText = sqlText;
comm.ExecuteNonQuery();
}
catch (Exception e)
{
throw new Exception(e.Message);//抛出连接的异常信息
}
finally
{
CloseConnection();//关闭连接
}
}
public int ExcuteCmdSql(string sqlText)
{
try
{
OpenConnection();
comm.CommandType = CommandType.Text;
comm.CommandText = sqlText;
return comm.ExecuteNonQuery();//执行查询,并返回一整数,如果大于0,表示查询成功,否则表示失败
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
CloseConnection();
}
return 1;
}
/// <summary>
/// 返回指定SQL语句的DataTable
/// </summary>
/// <param name="sqlText">传入的SQL语句</param>
/// <returns>DataTable</returns>
public DataTable GetDataTable(string sqlText)
{
SqlDataAdapter da = new SqlDataAdapter();
DataTable datatable = new DataTable();
try
{
OpenConnection();
comm.CommandType = CommandType.Text;
comm.CommandText = sqlText;
da.SelectCommand = comm;
da.Fill(datatable);
}
catch (Exception)
{
}
finally
{
CloseConnection();
} return datatable;
}
/// <summary>
/// 返回指定SQL语句的DataSet
/// </summary>
/// <param name="sqlText">传入的SQL语句</param>
/// <returns>DataSet</returns>
public DataSet GetDataSet(string sqlText)
{
SqlDataAdapter da = new SqlDataAdapter();
DataSet dataset = new DataSet();
try
{
OpenConnection();
comm.CommandType = CommandType.Text;
comm.CommandText = sqlText;
da.SelectCommand = comm;
da.Fill(dataset);
}
catch (Exception)
{
}
finally
{
da.Dispose();
CloseConnection();//关闭连接
} return dataset;
} /// <summary>
/// 建立数据库连接方法2
/// 返回一个连接的对象
/// </summary>
/// <returns>SqlConnection</returns>
public SqlConnection GetSqlConn()
{
//获取连接到数据库的字符串
string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
SqlConnection conn1 = new SqlConnection(connStr);
conn1.Open();//打开数据库连接
return conn1;//返回连接对象
} /// <summary>
/// 实例化SqlCommand对象
/// 返回一个SqlCommand对象
/// </summary>
/// <param name="sqlText">sql语句</param>
/// <returns>SqlCommand</returns>
public SqlCommand GetSqlComm(string sqlText)
{
return new SqlCommand(sqlText, GetSqlConn());//返回对象成员
} /// <summary>
/// 执行sql语句进行数据查询
/// </summary>
/// <param name="sqlText">sql语句</param>
/// <returns></returns>
public int cmd(string sqlText)
{
comm = GetSqlComm(sqlText);//实例化一个执行对象
return comm.ExecuteNonQuery();//执行查询,并返回一整数,如果大于0,表示查询成功,否则表示失败
}
/// <summary>
/// 关闭连接2
/// </summary>
/// <param name="comm"></param>
public void CloseSqlCommand(SqlCommand comm)
{
comm.Connection.Close();
comm.Connection.Dispose();
comm.Dispose();
}
}
}
只能执行sql语句,存储过程怎么办?
最好用using 来自动释放资源
比如一键切换为ACCESS,MSSQL,MYSQL,ORACLE,
再比如弄成类库,到时候大家就各自using就好了