C#的数据连接 对数据的操作
来源:互联网 发布:上海游族网络王晔 编辑:程序博客网 时间:2024/04/29 16:20
using System;
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 AHUT_TetWebERP;
/// <summary>
/// DataBase 的摘要说明
/// </summary>
public class DataBase
{
SqlConnection conn = null;
SqlDataAdapter adapter = null;
SqlCommand command = null;
SqlDataReader reader = null;
DataSet ds = null;
public DataBase()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 数据库连接
/// </summary>
public void connection()
{
conn = new SqlConnection(ConfigurationManager.ConnectionStrings["BWConnectionString"].ToString());
conn.Open();
}
/// <summary>
/// 关闭数据库连接
/// </summary>
public void CloseConnection()
{
if (conn != null)
conn.Close();
}
/// <summary>
/// 返回数据记录集DataSet
/// <param name="sql">适配器的数据查询语句</param>
/// </summary>
public DataSet returnRecordset(string sql)
{
try
{
adapter = new SqlDataAdapter(sql, conn);
ds = new DataSet();
adapter.Fill(ds);
}
catch(Exception ex)
{
SystemError.SystemLog(ex.Message);
}
return ds;
}
/// <summary>
/// 判断是否存在满足SQL查询条件的记录
/// <param name="sql">数据查询语句</param>
/// </summary>
public bool ExtenRow(string sql)
{
command = new SqlCommand(sql, conn);
try
{
reader = command.ExecuteReader();
if (reader.Read())
{
reader.Close();
reader.Dispose();
return true;
}
else
{
reader.Close();
reader.Dispose();
return false;
}
}
catch
{
return false;
}
}
/// <summary>
/// 执行操作数据库的SQL语句
/// <param name="sql">数据操作语句</param>
/// </summary>
public void SqlOperate(string sql)
{
command = new SqlCommand(sql, conn);
try
{
command.ExecuteNonQuery();
}
catch (Exception ex)
{
SystemError.SystemLog(ex.Message);
}
}
/// <summary>
/// 仅执行command操作
/// </summary>
/// <param name="sql"></param>
public void SqlCommd(string sql)
{
command = new SqlCommand(sql, conn);
}
public void getReader(ref SqlDataReader reader, string sql)
{
command = new SqlCommand(sql, conn);
reader = command.ExecuteReader();
}
/// <summary>
/// 销毁SqlDateReader数据
/// </summary>
/// <param name="reader">需要销毁的SqlDateReader数据对象</param>
public void DisposeReader(ref SqlDataReader reader)
{
reader.Close();
reader.Dispose();
}
/// <summary>
/// 执行不带参数的存储过程返回一个整数
/// </summary>
/// <param name="procName">存储过程的名称</param>
/// <returns>返回存储过程的返回值</returns>
public int ExcuteProc(string procName)
{
command = CreateCommand(procName, null);
try
{
command.ExecuteNonQuery();
}
catch (Exception ex)
{
SystemError.SystemLog(ex.Message); //执行错误时写入日志
}
finally
{
conn.Close();
}
return (int)command.Parameters["ReturnValue"].Value; //返回存储过程的返回值
}
/// <summary>
/// 执行带参数的存储过程返回一个整数
/// </summary>
/// <param name="procName">存储过程的名称</param>
/// <param name="procName">存储过程所需参数</param>
/// <returns>返回存储过程的返回值</returns>
public int ExcuteProc(string procName,SqlParameter[] prams)
{
command = CreateCommand(procName, prams);
try
{
command.ExecuteNonQuery();
}
catch (Exception ex)
{
SystemError.SystemLog(ex.Message); //执行错误时写入日志
}
finally
{
conn.Close();
}
return (int)command.Parameters["ReturnValue"].Value; //返回存储过程的返回值
}
/// <summary>
/// 执行不带参数的存储过程,可保存从数据库中获取的结果
/// </summary>
/// <param name="procName">存储过程的名称</param>
/// <returns>返回存储过程的返回值</returns>
public void ExcuteProc(string procName, out SqlDataReader reader)
{
command = CreateCommand(procName, null);
reader = command.ExecuteReader(CommandBehavior.CloseConnection);
}
/// <summary>
/// 执行带参数的存储过程,可保存从数据库中获取的结果
/// </summary>
/// <param name="procName">存储过程的名称</param>
/// <param name="procName">存储过程所需参数</param>
public void ExcuteProc(string procName, SqlParameter[] prams, out SqlDataReader reader)
{
command = CreateCommand(procName, prams);
reader = command.ExecuteReader(CommandBehavior.CloseConnection);
}
/// <summary>
/// 创建一个SqlCommand对象以此来执行存储过程
/// </summary>
/// <param name="procName">存储过程名称</param>
/// <param name="prams">存储过程所需参数</param>
/// <return>返回SqlCommand对象</return>
private SqlCommand CreateCommand(string procName, SqlParameter[] prams)
{
connection();
command = new SqlCommand(procName, conn);
command.CommandType = CommandType.StoredProcedure;
//-------------依次将参数传入存储过程
if (prams != null)
{
foreach (SqlParameter parameter in prams)
{
command.Parameters.Add(parameter);
}
}
//--------------------------------------
command.Parameters.Add(
new SqlParameter("ReturnValue", SqlDbType.Int, 4, ParameterDirection.ReturnValue, false, 0, 0, string.Empty, DataRowVersion.Default, null));
return command;
}
/// <summary>
/// 生成存储过程参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <param name="Direction">参数方向</param>
/// <param name="Value">参数值</param>
/// <return>新的 parameter 对象</return>
public SqlParameter CreateParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value)
{
SqlParameter param;
if (Size > 0) //根据参数Size大小值判断是否使用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;
}
/// <summary>
/// 传入输入参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <param name="Value">参数值</param>
/// <return>新的 parameter 对象</return>
public SqlParameter CreateInParam(string ParamName, SqlDbType DbType, int Size, object Value)
{
return CreateParam(ParamName, DbType, Size, ParameterDirection.Input, Value);
}
/// <summary>
/// 传入返回值参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <return>新的 parameter 对象</return>
public SqlParameter CreateOutParam(string ParamName, SqlDbType DbType, int Size)
{
return CreateParam(ParamName, DbType, Size, ParameterDirection.Output, null);
}
/// <summary>
/// 传入返回值参数
/// </summary>
/// <param name="ParamName">存储过程名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">参数大小</param>
/// <return>新的 parameter 对象</return>
public SqlParameter CreateReturnParam(string ParamName, SqlDbType DbType, int Size)
{
return CreateParam(ParamName, DbType, Size, ParameterDirection.ReturnValue, null);
}
}
- C#的数据连接 对数据的操作
- C#对XML数据的操作
- 对数据的操作
- vc连接数据库,对数据的基本操作
- C#对底层数据操作的通用类
- C#对底层数据操作的通用类
- 【DB】对数据的操作
- MySQL对数据的操作
- MATLAB对数据的操作
- c# 数据的转换操作
- c# json数据的操作
- 关于数据库的连接,以及对数据增删该查的操作的封装
- 对数据库中表的数据的操作
- PROC开发的对远程oracle数据的连接、断开和操作
- C#对串口数据接收的处理
- C#中连接数据的DBHelper
- C#导入Excel2007数据的连接驱动
- 用hibernate对递归数据的操作
- JS笔记(转)
- 第一课:快乐学C++: 安装C++开发环境
- FTP文件传输命令(简单的上传和下载)
- 大家好,今天我要演讲的题目是《郁闷是怎么样产生的》
- 快乐C++答问:std::的意思?
- C#的数据连接 对数据的操作
- 明天攻读c和c++代码精粹
- 超级菜鸟的java学习笔记(一)
- 堆栈
- 超级菜鸟的JAVA学习笔记(二)
- readonly和const比较
- 连接
- 软件工程局部扫描
- 闲谈