📄 sqldatabase.cs
字号:
using System;
using System.Data;
using System.Data.SqlClient;
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;
/// <summary>
/// SqlDataBase 的摘要说明。
/// </summary>
public class SqlDataBase
{
private SqlConnection cn; //创建SQL连接
private SqlDataAdapter sda; //创建SQL数据适配器
private SqlDataReader sdr; //创建SQL数据读取器
private SqlCommand cmd; //创建SQL命令对象
private DataSet ds; //创建数据集
private DataView dv; //创建视图
public SqlDataBase()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
#region 打开数据库连接
/// <summary>
/// 打开数据库连接
/// </summary>
private void Open()
{
cn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connstr"].ToString());
cn.Open();
}
#endregion
#region 关闭数据库连接
/// <summary>
/// 关闭数据库连接
/// </summary>
private void Close()
{
if (cn != null)
{
cn.Close();
cn.Dispose();
}
}
#endregion
#region 返回DataSet数据集
/// <summary>
/// 返回DataSet数据集
/// </summary>
/// <param name="strSql">SQL语句</param>
public DataSet GetDs(string strSql)
{
Open();
sda = new SqlDataAdapter(strSql, cn);
ds = new DataSet();
sda.Fill(ds);
Close();
return ds;
}
#endregion
#region 返回DataView数据视图
/// <summary>
/// 返回DataView数据视图
/// </summary>
/// <param name="strSql">Sql语句</param>
public DataView GetDv(string strSql)
{
ds = GetDs(strSql);
dv = ds.Tables[0].DefaultView;
return dv;
}
#endregion
#region 获得DataTable对象
/// <summary>
/// 获得DataTable对象
/// </summary>
/// <param name="strSql">SQL语句</param>
/// <returns></returns>
public DataTable GetTable(string strSql)
{
return GetDs(strSql).Tables[0];
}
#endregion
#region 获得SqlDataReader对象,使用完须关闭DataReader,关闭数据库连接
/// <summary>
/// 获得SqlDataReader对象
/// </summary>
/// <param name="strSql">sql语句</param>
/// <returns></returns>
public SqlDataReader GetDataReader(string strSql)
{
Open();
cmd = new SqlCommand(strSql, cn);
sdr = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
return sdr;
}
#endregion
#region 简单执行SQL语句
/// <summary>
/// 执行Sql语句
/// </summary>
/// <param name="strSql"></param>
public void RunSql(string strSql)
{
Open();
cmd = new SqlCommand(strSql, cn);
cmd.ExecuteNonQuery();
Close();
}
#endregion
#region 执行SQL语句,返回第一行第一列结果
/// <summary>
/// 执行SQL语句,并返回第一行第一列结果
/// </summary>
/// <param name="strSql">SQL语句</param>
/// <returns></returns>
public string RunSqlReturn(string strSql)
{
string strReturn = "";
Open();
try
{
cmd = new SqlCommand(strSql, cn);
strReturn = cmd.ExecuteScalar().ToString();
}
catch
{
}
Close();
return strReturn;
}
#endregion
#region 执行存储过程,返回存储过程返回值
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="procName">存储过程的名称</param>
/// <returns>返回存储过程返回值</returns>
public int RunProc(string procName)
{
SqlCommand cmd = CreateCommand(procName, null);
cmd.ExecuteNonQuery();
this.Close();
return (int)cmd.Parameters["ReturnValue"].Value;
}
#endregion
#region 执行存储过程,需要参数,返回存储过程返回值
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="procName">存储过程名称</param>
/// <param name="prams">存储过程所需参数</param>
/// <returns>返回存储过程返回值</returns>
public int RunProc(string procName, SqlParameter[] prams)
{
SqlCommand cmd = CreateCommand(procName, prams);
cmd.ExecuteNonQuery();
this.Close();
return (int)cmd.Parameters["ReturnValue"].Value;
}
#endregion
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="procName">存储过程的名称</param>
/// <param name="dataReader">返回存储过程返回值</param>
public void RunProc(string procName, out SqlDataReader dataReader)
{
SqlCommand cmd = CreateCommand(procName, null);
dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
//return (int)cmd.Parameters["ReturnValue"].Value;
}
#region 执行存储过程,返回一个datareader
/// <summary>
/// 执行存储过程
/// </summary>
/// <param name="procName">存储过程的名称</param>
/// <param name="prams">存储过程所需参数</param>
/// <param name="dataReader">存储过程所需参数</param>
public void RunProc(string procName, SqlParameter[] prams, out SqlDataReader dataReader)
{
SqlCommand cmd = CreateCommand(procName, prams);
dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
//return (int)cmd.Parameters["ReturnValue"].Value;
}
#endregion
#region 根据带参数的存储过程,返回一个sqlcommand对象
/// <summary>
/// 创建一个SqlCommand对象以此来执行存储过程
/// </summary>
/// <param name="procName">存储过程的名称</param>
/// <param name="prams">存储过程所需参数</param>
/// <returns>返回SqlCommand对象</returns>
private SqlCommand CreateCommand(string procName, SqlParameter[] prams)
{
// 确认打开连接
Open();
SqlCommand cmd = new SqlCommand(procName, cn);
cmd.CommandType = CommandType.StoredProcedure;
// 依次把参数传入存储过程
if (prams != null)
{
foreach (SqlParameter parameter in prams)
cmd.Parameters.Add(parameter);
}
// 加入返回参数
cmd.Parameters.Add(
new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));
return cmd;
}
#endregion
#region 释放资源
/// <summary>
/// 释放资源
/// </summary>
public void Dispose()
{
// 确认连接是否已经关闭
if (cn != null)
{
cn.Dispose();
cn = null;
}
}
#endregion
#region 传入输入参数
/// <summary>
/// 传入输入参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param></param>
/// <param name="Size">参数大小</param>
/// <param name="Value">参数值</param>
/// <returns>新的 parameter 对象</returns>
public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
}
#endregion
#region 传入返回值参数
/// <summary>
/// 传入输出参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <returns>新的 parameter 对象</returns>
public SqlParameter MakeOutParam(string ParamName, SqlDbType DbType, int Size)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.Output, null);
}
#endregion
#region 添加一个返回值
public SqlParameter MakeReturnParam(string ParamName, SqlDbType DbType, int size, object value)
{
return MakeParam(ParamName,DbType,size,ParameterDirection.ReturnValue,null);
}
#endregion
#region 生成存储过程参数
/// <summary>
/// 生成存储过程参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <param name="Direction">参数方向</param>
/// <param name="Value">参数值</param>
/// <returns>新的 parameter 对象</returns>
public SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
SqlParameter param;
if (Size > 0)
param = new SqlParameter(ParamName, DbType, Size);
else
param = new SqlParameter(ParamName, DbType);
param.Direction = Direction;
if (!(Direction == ParameterDirection.Output && Value == null))
param.Value = Value;
return param;
}
#endregion
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -