求一数据访问层

bluebirdlxp 2004-03-21 06:39:50
要有源代码的
...全文
47 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangsaokui 2004-03-21
  • 打赏
  • 举报
回复
数据访问层??
wtadminxjeri 2004-03-21
  • 打赏
  • 举报
回复
using System;
using System.ComponentModel;
using System.Collections;
using System.Diagnostics;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Security;
namespace dal
{
/// <summary>
/// 数据访问类 for Microsoft Sql Server
/// </summary>
public class Database : IDisposable
{
// connection to data source
private SqlConnection con;

/// <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;
}

/// <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;
}

/// <summary>
/// sql句子返回DataSet
/// </summary>
public DataSet RunSqlToDataSet(string sql,string tablename)
{
this.Open();
SqlDataAdapter sda=new SqlDataAdapter(sql,con);
DataSet ds=new DataSet();
sda.Fill(ds,tablename);
this.Close();
return ds;
}

/// <summary>
/// 执行sql句子如:update insert delete等
/// </summary>
public int RunSql(string sql)
{
this.Open();
SqlCommand cmd=new SqlCommand(sql,con);
int i=cmd.ExecuteNonQuery();
this.Close();
return i;

}

/// <summary>
/// 运行存储过程(不带参数)返回DataSet
/// <param name="procName">存储过程名称</param>
/// <param name="tablename">DataSet的表名</param>
/// </summary>
public DataSet RunProcToDataSet(string procName,string tablename)
{
SqlCommand cmd = CreateCommand(procName, null);
SqlDataAdapter sda=new SqlDataAdapter(cmd);
DataSet ds=new DataSet();
sda.Fill(ds,tablename);
this.Close();
return ds;
}

/// <summary>
/// 运行存储过程(带参数)返回DataSet
/// <param name="procName">存储过程名称</param>
/// <param name="prams">参数集合</param>
/// <param name="tablename">DataSet的表名</param>
/// </summary>
public DataSet RunProcToDataSet(string procName, SqlParameter[] prams,string tablename)
{
SqlCommand cmd = CreateCommand(procName, prams);
SqlDataAdapter sda=new SqlDataAdapter(cmd);
DataSet ds=new DataSet();
sda.Fill(ds,tablename);
this.Close();
return ds;
}

/// <summary>
/// 运行存储过程,结果给DataTeader
/// </summary>
/// <param name="procName">存储过程名称</param>
/// <param name="dataReader">结果给DataTeader</param>
public void RunProc(string procName, out SqlDataReader dataReader)
{
SqlCommand cmd = CreateCommand(procName, null);
dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
}

public void RunCommand(string command,out SqlDataReader dataReader)
{
Open();

//command = new SqlCommand( sprocName, new SqlConnection( ConfigManager.DALConnectionString ) );
SqlCommand cmd = new SqlCommand(command, con);
cmd.CommandType = CommandType.Text;
dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
}

/// <summary>
/// 运行存储过程结果给DataReader
/// </summary>
/// <param name="procName">存储过程名称</param>
/// <param name="prams">存储过程名称参数集合</param>
/// <param name="dataReader">结果给DataReader</param>
public void RunProc(string procName, SqlParameter[] prams, out SqlDataReader dataReader)
{
SqlCommand cmd = CreateCommand(procName, prams);
dataReader = cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
}

/// <summary>
/// 建立command等待被其他存储过程调用.
/// </summary>
/// <param name="procName">存储过程名称</param>
/// <param name="prams">存储过程参数.</param>
/// <returns>返回Command</returns>
private SqlCommand CreateCommand(string procName, SqlParameter[] prams)
{
// make sure connection is open
Open();

//command = new SqlCommand( sprocName, new SqlConnection( ConfigManager.DALConnectionString ) );
SqlCommand cmd = new SqlCommand(procName, con);
cmd.CommandType = CommandType.StoredProcedure;

// add proc parameters
if (prams != null)
{
foreach (SqlParameter parameter in prams)
cmd.Parameters.Add(parameter);
}

// return param
cmd.Parameters.Add(
new SqlParameter("ReturnValue", SqlDbType.Int, 4,
ParameterDirection.ReturnValue, false, 0, 0,
string.Empty, DataRowVersion.Default, null));

return cmd;
}

/// <summary>
/// 打开连接
/// </summary>
public void Open() /// <summary>
/// 打开连接
/// </summary>
{
// open connection
if (con == null)
{
con = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
con.Open();
}
}

/// <summary>
/// 关闭连接
/// </summary>
public void Close()
{
if (con != null)
con.Close();
}

/// <summary>
/// 释放资源.
/// </summary>
public void Dispose()
{
// make sure connection is closed
if (con != null)
{
con.Dispose();
con = null;
}
}

/// <summary>
/// 制作输入参数
/// </summary>
/// <param name="ParamName">参数名称</param>
/// <param name="DbType">参数类型</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);
}

/// <summary>
/// 制作输出参数
/// </summary>
/// <param name="ParamName">参数名称</param>
/// <param name="DbType">参数类型</param>
/// <param name="Size">尺寸大小</param>
/// <param name="Value">参数值</param>
/// <returns>返回新Parameter</returns>
public SqlParameter MakeOutParam(string ParamName, SqlDbType DbType, int Size,object Value)
{
return MakeParam(ParamName, DbType, Size, ParameterDirection.Output, Value);
}

/// <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;
}
}


}

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧