数据层学习

本文介绍了一个基于C#的数据访问层(DAL)设计实现,包括如何通过存储过程进行数据查询、更新操作,并展示了具体的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据层学习

using System;

using System.Data;

using System.Collections;

using System.Data.SqlClient;

namespace DAL{

/// DALBase 的摘要说明。

/// 数据层访问基 类,定义数据层访问公共的变量,方法

public class DALBase {// 定义该类共用变量

private SqlConnection conn;

private SqlCommand mycm;

private DataSet myds;

private SqlDataAdapter myda;

private string CONNSTR= System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]; // 从web.config中读取 数据库连接字符串

public DALBase() {//构造函数,创建对象实例

conn = new SqlConnection(CONNSTR);

mycm = conn.CreateCommand();

myds = new DataSet();

myda = new SqlDataAdapter(); }

// 通过存储过程返回查询表的信息

// 存储过程名称

//DataTable

protected DataTable GetTable(string sprocName) {

conn.Open();

try { mycm.CommandText = sprocName;

mycm.CommandType = CommandType.StoredProcedure;

myda.SelectCommand = mycm;

myda.Fill(myds);
}

finally {//无论语句执行正确与否,都关闭连接释放资源
     conn.Close();
}
return myds.Tables[0];
}


// 通过存储过程和参数返回查询表的信息

protected DataTable GetTable(string sprocName, SqlParameter[] parameters)

{ conn.Open();

try { mycm.CommandText = sprocName;

mycm.CommandType = CommandType.StoredProcedure;

SqlParameterCollection sqlParams = mycm.Parameters;

mycm.Parameters.Clear(); //先清空原有的参数

foreach ( SqlParameter parameter in parameters ) { mycm.Parameters.Add( parameter ); } //给Command添加参数

myda.SelectCommand = mycm; myda.Fill(myds); }

finally {//无论语句执行正确与否,都关闭连接释 放资源
     conn.Close();
}

return myds.Tables[0];
}
    
//通过存储过程及存储过程参数执行对数据库 无返回值的操作(如:新增,更新,删除等)// 存储过程名称/// 存储 过程参数

protected void SaveTale(string sprocName, SqlParameter[] parameters)

{mycm.CommandText = sprocName;

mycm.CommandType = CommandType.StoredProcedure;

SqlParameterCollection sqlParams = mycm.Parameters; //先清空原有的参数

mycm.Parameters.Clear(); //给Command添 加参数

foreach ( SqlParameter parameter in parameters ) { mycm.Parameters.Add( parameter ); }
     //打开连接 conn.Open();

try {//执行
     mycm. ExecuteNonQuery(); }
finally { //关闭连接
     conn.Close(); }
}
}
}

//数据访问层代码:

using System;

using System.Data;

using System.Collections;

using System.Data.SqlClient;

namespace DAL{

public class Test : DALBase { public Test() { }

public DataTable GetTestTable() {

return base .GetTable("存储过程名称");

}

public DataTable GetTestTableByXName(string XName)

{ SqlParameter[] parameters= { new SqlParameter( "@XName", SqlDbType.NVarChar,10) };

return base.GetTable("存储过程名称",parameters); }

public void AddTestTable(string XName, string Description) {

SqlParameter[] parameters = { new SqlParameter( "@XName",SqlDbType.NVarChar,10 ), new SqlParameter("@Description",SqlDbType.NVarChar,100) };
//设 置参数值
     parameters[0].Value = XName;
     parameters[1].Value = Description;
     base.SaveTale("存储过程名称",parameters); }
}
}

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值