C#.NET + Access 示例讲解
1、准备阶段
2、数据层实现
3、商务层实现
4、表示层实现
5、总结
C#.NET + MS Sql Server 2000 示例讲解
此部分整理中,稍后奉上
一、准备 [顶部]
设计面向对象软件比较困难,而设计可复用、高扩展、架构安全的面向对象软件就更加困难。下面就自己学习、使用C#.NET开发的一些经验拿出来和大家一块讨论。
示例说明:通过一个简单的数据库系统,了解一下C#.NET的N层设计模式是如何实现的,以及如何提高代码的可复用性、高扩展性、系统安全性。
功能描述:一个简单的图书管理,实现图书信息的增加、修改、删除、检索等功能。
数据库设计: 数据表 t_Book
字段名 | 主键 | 数据类型 | 取值 | 是否空 | 描述说明 |
BookId | PK | 自动编号 | 否 | 编号 | |
BookName | 文本 | 50 | 否 | 书名 |
项目属性及目录结构:
1、建虚拟目录名为Example指向你的项目编辑目录
2、新建asp.net web项目命名为Example
3、设置项目属性:程序集名称、默认命名空间均为“Com.LXJ.Example”
4、目录结构安排:
项目根目录---Book---Business---Book.cs
---Data---BookForAccess.cs
---BookForSql.cs (在讲sql示例时使用)
---BookList.aspx (操作页面,包括:新增、修改、删除、清单功能)
---Buttons (存放图片、按钮等)
---Css--Style.css (样式表)
5、配置web.config文件:配置数据库连接参数
<appSettings>
<!--
connStr参数设置,事例说明:
(1)Sql server数据库,例如“server=local;database=test;uid=sa;pwd=;”
(2)Access数据库,例如“data/ex.mdb; user id='admin';Jet OLEDB:database password='admin';”
-->
<add key="connStr" value="DB/Example.mdb; user id='admin';Jet OLEDB:database password='admin';" />
</appSettings>
程序设计开始:
1、按要求建立Access数据库及数据表
2、编写数据库访问、操作的公用类,此类可以复用到以后开发的任何系统中
(1)、新建一个C# 类库项目, 命名为“Com.LXJ”,设置项目属性:程序集名称、默认命名空间均为“Com.LXJ”
(2)、在此项目目录下创建目录Database,新建C# 类文件ConnDbForAccess.cs 在Database目录下。
添加引用:System.Web.dll
(3)、编写ConnDbForAccess.cs 的代码
using System;
using System.Data;
using System.Data.OleDb;
using System.Web;
using System.Web.UI;
namespace Com.LXJ.Database
{
/// <summary>
/// conn 的摘要说明。
/// </summary>
public class ConnDbForAcccess
{
/// <summary>
/// 连接数据库字符串
/// </summary>
private string connectionString;
/// <summary>
/// 存储数据库连接(保护类,只有由它派生的类才能访问)
/// </summary>
protected OleDbConnection Connection;
/// <summary>
/// 构造函数:数据库的默认连接
/// </summary>
public ConnDbForAcccess()
{
string connStr;
connStr = System.Configuration.ConfigurationSettings.AppSettings["connStr"]; //从web.config配置中读取
connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Request.PhysicalApplicationPath + connStr;
Connection = new OleDbConnection(connectionString);
}
/// <summary>
/// 构造函数:带有参数的数据库连接
/// </summary>
/// <param name="newConnectionString"></param>
public ConnDbForAcccess(string newConnectionString)
{
connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Request.PhysicalApplicationPath + newConnectionString;
Connection = new OleDbConnection(connectionString);
}
/// <summary>
/// 获得连接字符串
/// </summary>
public string ConnectionString
{
get
{
return connectionString;
}
}
/// <summary>
/// 执行SQL语句没有返回结果,如:执行删除、更新、插入等操作
/// </summary>
/// <param name="strSQL"></param>
/// <returns>操作成功标志</returns>
public bool ExeSQL(string strSQL)
{
bool resultState = false;
Connection.Open();
OleDbTransaction myTrans = Connection.BeginTransaction();
O