《.NET实例开发》实验指导书 - 图文

更新时间:2024-05-04 11:24:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《.NET实例开发》

实验指导书

山东建筑大学计算机学院 软件教研室

2013年2月

实验1 .NET三层架构初级编程

一.实验目的

1.熟悉和掌握ASP.NET网站开发中的操作步骤。

2.熟悉和掌握基于.NET最简三层架构的网站的开发方法和步骤。

二.实验内容

设计并实现一个基于最简三层架构的标题为“C#学习网”的网站的登录页面login.aspx,效果图如1-1所示,若输入正确的用户名和密码,单击“登录”按钮,则提示“登录失败,无此用户名或密码不正确!”,若输入不正确的用户名和密码,单击“登录”按钮,则提示“登录成功!”。

图1-1 登录页面效果

三.实验步骤

1.剪切图片素材

在设计页面之前,首先根据效果图分析得到框架结构代码,并利用PhotoShop工具,剪切下需要的图片,并保存(本实验已提供了这些图片)。 2.创建ASP.NET网站。

启动Visual Studio 2008,点击“文件”菜单中的子菜单“新建”,在级联菜单中点击“ASP.NET网站”,如图1-2,在的“新建网站”对话框中,默认选择“ASP.NET网站”模板,文件默认选择“文件系统”,语言选择“Visual C#”,然后单击“浏览”按钮打开“选择位置”对话框为网站选择一个合适的位置,单击“打开”按钮,返回“新建网站”对话框。在刚刚选择的文件路径后面输入网站名“CSharpStudy”,然后单击“确定”按钮,这样就完成新建了一个名为“CSharpStudy”的ASP.NET网站,该网站的有一个项目,项目名也默认为“CSharpStudy”,不可修改。 3.添加图片素材。

右单击项目名“CSharpStudy”,在打开的快捷菜单中选择“新建文件夹”选项,添加一个名为“images”的文件夹,通过添加现有项的方法将本实验提供的图片素材添加到网站的images文件中。

1

图1-2 新建网站

4.创建数据库和数据库表

完成“CSharpStudy”中的登录页面,只用到了一个表——userlogin表,用于保存用户的基本信息,下面给出创建Server SQL 2005 Express数据库“webdevelop”和数据库表userlogin表的步骤。

首先在“CSharpStudy”网站中,右单击App_Data文件夹,打开快捷菜单,单击“添加新项”,打开“添加新项”对话框,如图1-3所示,默认选择“SQL Server数据库”模板,在名称输入框中输入“webdevelop.mdf”,单击“添加”按钮,完成Server SQL 2005 Express数据库“webdevelop”的创建。

双击“webdevelop.mdf”,如图1-4所示,在左侧的“服务器管理器”中打开数据库“webdevelop”,右单击“webdevelop.mdf”中的“表”节点,单击“添加新表”选项,然后按照图1-5的表结构创建userlogin表。

图1-3 App_Data文件夹中的添加新项对话框

2

图1-4 服务器管理器中的“webdevelop“数据库

图1-5 userlogin表结构

5.在配置文件中添加数据库连接字符串

在Web.Config文件中的配置节内添加一个连接“webdevelop”数据库的连接字符串,如下:

6.在数据库中创建用于验证用户的存储过程

双击“webdevelop.mdf”,如图1-4所示,在左侧的“服务器管理器”中打开数据库“webdevelop”,右单击“webdevelop.mdf”中的“存储过程”节点,打开快捷菜单,单击“添加新存储过程”选项,在打开的编辑器中创建存储过程Proc_UserExists,如下: CREATE proc Proc_UserExists (

@UserName nvarchar(30), @UserPwd varchar(20) ) as

if exists(select * from userlogin where username =@UserName and userpwd =@UserPwd) return 100 else

return -100

3

7.添加App_Code文件夹,创建相关类文件

图1-6所示,右单击解决方案“CSharpStudy”的项目名“CSharpStudy”,打开快捷菜单,单击“添加ASP.NET文件夹”菜单项,在级联菜单中单击选择“App_Code”菜单项,从而添加存放项目业务逻辑层类文件的文件夹App_Code。在Web页面后窗口文件中调用App_Code文件夹中的类文件中的类,不必先添加对其命名空间的引用,直接使用即可,因为系统会自动到App_Code文件夹中搜索并调用该类。

图1-6 创建App_Code文件夹

右单击App_Code文件夹,打开快捷菜单,选择“添加新项”选项,打开如图1-7所示的“添加新项”对话框,单击选择“类”模板,然后在名称输入框中输入类文件名DBClass.cs,单击“添加”按钮,完成类文件DBClass.cs的创建,使用同样的方法完成类文件UserInfoClass.cs的添加。

图1-7 App_Code文件夹中的“添加新项”对话框

4

图1-14 新闻内容页面效果

五.实验体会:

10

实验2 .NET三层架构高级编程(1)

一.实验目的

1.熟悉和掌握ASP.NET网站开发中的操作步骤。

2.熟悉和掌握基于.NET简单三层架构的网站的开发方法和步骤。

二.实验内容

设计并实现一个基于简单三层架构的标题为“C#学习网”的网站的登录页面login.aspx,效果图如2-1所示(与图1-1相同),若输入正确的用户名和密码,单击“登录”按钮,则提示“登录失败,无此用户名或密码不正确!”,若输入不正确的用户名和密码,单击“登录”按钮,则提示“登录成功!”。

图2-1 登录页面效果

三.实验步骤

1.剪切并保存图片素材

在设计页面之前,首先根据效果图分析得到框架结构代码,并利用PhotoShop工具,剪切下需要的图片,并保存(也可以直接使用实验1中已准备好的图片素材)。 2.创建ASP.NET Web应用程序

启动Visual Studio 2008,单击主菜单项“新建”,在下拉菜单中单击“项目”菜单项,打开“新建项目”对话框(如图2-2所示),先单击选择左侧项目类型中的“Visual C#”节点,然后选择右侧模板列表框中的“ASP.NET Web应用程序”模板,在“名称”输入框输入“Web”,在解决方案输入框中输入“CSharpStudy”,单击“浏览”按钮,在打开的“选择位置”对话框中选择本网站将要保存的位置,最后单击“确定”按钮,完成名为“CSharpStudy”的ASP.NET Web 应用程序的创建。 3.添加图片素材

在创建的Web项目新建一个名为images的文件夹,通过添加现有项的方法将步骤中已准备好的图片素材添加到网站的images文件中。

11

图2-2 新建项目对话框

4.添加类库项目MODEL、DBHelper、DAL和BLL

如图2-3所示,右单击“CSharpStudy”解决方案,打开快捷菜单,选择“添加”菜单项,在级联菜单中选择“新建项目”,打开“添加新项目”对话框(如图2-4所示),先单击左侧的“项目类型”视图中的“Visual C#”节点,然后在右侧的“模板”列表中选择“类库”模板,再在名称输入框中输入类库项目名称“MODEL”,位置输入框中的内容默认即可。最后单击“确定”按钮,就此完成类库项目“MODEL”的项目的创建,在“解决方案资源管理器”中双击“MODEL”项目,可看到该项目中有自动生成的类文件Class1.cs,将其删除。

使用同上的方法,再分别添加名为“DBHelp”的类库项目、名为“DAL”的类库项目和名为“BLL”的类库项目,并分别删除各类库项目自动生成的类文件Class1.cs。

图2-3 添加新项目

12

图2-4 添加新项目对话框

5.创建数据库和数据库表

按照实验1中所述的方法在Web项目中创建Server SQL 2005 Express数据库“webdevelop”和数据库表userlogin表。

6.在配置文件中添加数据库连接字符串

在Web项目的Web.Config文件中的配置节内添加一个连接“webdevelop”数据库的连接字符串,如下:

注:配置节和配置节都可以通过键值对来设置连接字符串,但

配置节还可以设置其他用途的键值对,功能比配置节广。 7.在各项目中添加各个类文件

右单击“MODEL”项目,在打开的快捷菜单中,单击“添加”菜单项,在级联菜单中单击选择“新

建项”菜单项,打开“添加新项”对话框(如图2-5所示),先单击左侧的“类别”视图中的“代码”节点,再在右侧的“模板”列表框中单击选择“类”模板,再在名称输入框中输入类库文件名“users.cs”,最后单击“添加”按钮,完成MODEL项目中users.cs的创建。

使用同上的方法,在“DBHelper”项目中添加类文件SQLDBHelper.cs,在“DAL”项目中添加类

文件usersDAL.cs,在“BLL”项目中添加类文件usersBLL.cs。

13

图2-5 添加新项对话框

8.为DAL项目、BLL项目和Web项目添加所需的引用

为了使DAL项目可以访问到MODEL类库项目和DBHelper类库项目中的类,需要为DAL项目添加对

MODEL项目和DBHelper项目的引用,步骤如下:右单击DAL项目中的“引用”文件夹,选择“添加引用”菜单项,打开如图2-6所示的“添加引用”对话框,单击“项目”选项卡,单击选择“DBHelper”项目,再单击“确定”按钮,完成对DBHelper项目的引用(等同于对DBHelper项目编译生成的组件(dll)的引用,该dll组件编译后自动生成在项目文件夹下的子文件夹bin\\Debug中)。使用同上的方法继续分别完成DAL项目对MODEL项目的引用、Web项目对BLL项目和MODEL项目的引用以及BLL项目对DAL项目和MODEL项目的引用。

图 2-6 添加引用对话框

14

}

///

/// 执行带参SQL语句并返回数据表 ///

/// /// ///

public static DataTable ExecuteDt(String Sqlstr, SqlParameter[] param) {

String ConnStr = SQLHelper.GetSqlConnection();

using (SqlConnection conn = new SqlConnection(ConnStr)) {

DataTable dt = new DataTable();

SqlDataAdapter da = new SqlDataAdapter();

SqlCommand cmd = new SqlCommand(Sqlstr, conn); cmd.Connection = conn;

cmd.Parameters.AddRange(param); da.SelectCommand = cmd; conn.Open(); da.Fill(dt); conn.Close(); return dt; } }

///

/// 批量执行带参SQL语句 ///

/// /// ///

public static Int32 ExecuteSqls(String[] Sqlstr, List param) {

String ConnStr = SQLHelper.GetSqlConnection();

using (SqlConnection conn = new SqlConnection(ConnStr)) {

SqlCommand cmd = new SqlCommand(); SqlTransaction tran = null; cmd.Transaction = tran; try {

conn.Open();

tran = conn.BeginTransaction();

20

cmd.Connection = conn; cmd.Transaction = tran;

Int32 count = Sqlstr.Length;

for (Int32 i = 0; i < count; i++) {

cmd.CommandText = Sqlstr[i];

cmd.Parameters.AddRange(param[i]); cmd.ExecuteNonQuery(); }

tran.Commit(); return 1; } catch {

tran.Rollback(); return 0; }

finally {

cmd.Dispose(); conn.Close(); } } } }

11.编写类文件usersDAL.cs的内容

双击DAL项目中的usersDAL.cs文件,先在该文件的开始部分添加以下对所需命名空间的引用的代码:

using System.Data;

using System.Data.SqlClient; using DBHelper; using MODEL;

然后将自动生成的usersDAL类的访问修饰符改为public,在userDAL类中添加

GetUsersByNameAndPWD()方法,最后,类usersDAL的完整代码如下:

public class usersDAL {

///

/// 根据帐号和密码判断是否存在账户 ///

///

21

public int GetUsersByNameAndPWD(users objusers) {

StringBuilder sb = new StringBuilder();

sb.Append(\ sb.Append(\ SqlParameter[] param ={

SQLHelper.GetParameter(\

SQLHelper.GetParameter(\ };

DataTable table = SQLHelper.ExecuteDt(sb.ToString(), param); if (table.Rows.Count > 0) {

return 1; } else {

return 0; } } }

12.编写类文件usersBLL.cs的内容

双击BLL项目中的usersBLL.cs文件,先在该文件的开始部分添加以下对所需命名空间的引用的代码: using DAL; using MODEL;

然后将自动生成的usersBLL类的访问修饰符改为public,编写usersBLL类代码如下: namespace BLL {

public class usersBLL {

private static readonly usersDAL user = new usersDAL();

public int GetUsersByNameAndPWD(users objusers) {

return user.GetUsersByNameAndPWD(objusers); } } }

13.创建登录页面

右单击项目Web,打开快捷菜单,单击“添加”菜单项,再单击级联菜单中的“新建项”,打开“添加新项”对话框,默认选择“Web窗体”模板,在名称输入框中输入登录页面的名称“login.aspx”,

22

单击“添加”按钮,就此完成登录页面login.aspx的创建。按照图1-1所示的效果图,将用于用户名输入的TextBox取名为“TextBoxUsername”,用于密码输入的TextBox取名为“TextBoxPassword”,“登录”按钮取名为“ButtonLogin”,“注册”按钮取名为“ButtonRegister”。

图2-8 添加新项对话框

双击login.aspx.cs文件,在文件的开始部分,添加以下命名空间的引用:

using MODEL;

using BLL;

编写“ButtonLogin”按钮的Click事件代码,如下: protected void ButtonLogin_Click(object sender, EventArgs e) {

usersBLL objusersBLL = new usersBLL(); users objusers = new users();

objusers.UserName = TextBoxUsername.Text.Trim(); objusers.UserPwd = TextBoxPassword.Text.Trim();

int result = objusersBLL.GetUsersByNameAndPWD(objusers); if (result == 1) {

this.ClientScript.RegisterStartupScript(this.GetType(), \, \登录成

功!');\); } else {

this.ClientScript.RegisterStartupScript(this.GetType(), \, \登录失

败!');\); } }

14.调试与运行

右单击“login.cs”文件,在打开的快捷菜单中,选择“在浏览器中查看”菜单项,运行登录页

23

面,若有错,请按照编译器指出的错误的顺序逐个排错,依次解决各种错误问题。

四.实验题

在以上创建的ASP.NET网站“CSharpStudy”的基础上,添加一个新表“news”用于保存新闻记录,对login.aspx登录页面做必要修改后,然后继续通过引用项目的方式完成基于简单三层架构的“CSharpStudy”网站的其它功能页面,其它各页面的效果图如图1-7、1-8、1-9、1-10、1-11、1-12、1-13所示。大体上的功能详见实验1中关于功能的描述。

五.实验体会:

24

{

OleDbCommand cmd = new OleDbCommand(); OleDbTransaction tran = null; cmd.Transaction = tran; try {

conn.Open();

tran = conn.BeginTransaction(); cmd.Connection = conn; cmd.Transaction = tran;

Int32 count = Sqlstr.Length;

for (Int32 i = 0; i < count; i ++ ) {

cmd.CommandText = Sqlstr[i];

cmd.Parameters.AddRange(param[i]); cmd.ExecuteNonQuery(); }

tran.Commit(); return 1; } catch {

tran.Rollback(); return 0; }

finally {

cmd.Dispose(); conn.Close(); } } } } }

下面为SQLDbHelper.cs文件添加代码,首先在SQLDbHelper.cs文件的开始部分添加以下命名空

间的引用:

using System.Configuration; using System.Data;

using System.Data.OleDb; using System.Web; 然后,将SQLDbHelper类的访问属性改为“public”,将命名空间改为“CSharpStudy.DBUtility”,

30

再添加OLEDBDAAB代码,最后SQLDbHelper.cs的内容如下: using System;

using System.Collections.Generic; using System.Text;

using System.Configuration; using System.Data;

using System.Data.SqlClient; using System.Web;

namespace CSharpStudy.DBUtility {

public class SQLDbHelper {

public SQLDbHelper() { }

///

/// 返回数据库连接字符串 ///

///

public static String GetSqlConnection() {

String conn = ConfigurationSettings.AppSettings[\ return conn; }

///

/// 获得参数对象 ///

/// /// /// /// /// ///

public static SqlParameter GetParameter(String paramName,SqlDbType paramType, Int32

paramSize, String ColName, Object paramValue) {

SqlParameter param = new SqlParameter(paramName, paramType, paramSize, ColName); param.Value = paramValue; return param; }

///

/// 获得参数对象

31

///

/// /// /// /// ///

public static SqlParameter GetParameter(String paramName, SqlDbType paramType, Int32

paramSize, String ColName) {

SqlParameter param = new SqlParameter(paramName, paramType, paramSize, ColName); return param; }

///

/// 获得参数对象 ///

/// /// /// /// ///

public static SqlParameter GetParameter(String paramName, SqlDbType paramType, Object

paramValue) {

SqlParameter param = new SqlParameter(paramName, paramType); param.Value = paramValue; return param; }

///

/// 执行SQL语句 ///

/// /// ///

public static int ExecuteSql(String Sqlstr, SqlParameter[] param) {

String ConnStr = SQLDbHelper.GetSqlConnection();

using (SqlConnection conn = new SqlConnection(ConnStr)) {

SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = Sqlstr;

cmd.Parameters.AddRange(param);

32

conn.Open();

cmd.ExecuteNonQuery(); conn.Close(); return 1; } }

///

/// 执行SQL语句并返回数据表 ///

/// ///

public static DataTable ExecuteDt(String Sqlstr) {

String ConnStr = SQLDbHelper.GetSqlConnection();

using (SqlConnection conn = new SqlConnection(ConnStr)) {

SqlDataAdapter da = new SqlDataAdapter(Sqlstr, conn); DataTable dt = new DataTable(); conn.Open(); da.Fill(dt); conn.Close(); return dt; } }

///

/// 执行SQL语句并返回数据表 ///

/// /// ///

public static DataTable ExecuteDt(String Sqlstr, SqlParameter[] param) {

String ConnStr = SQLDbHelper.GetSqlConnection();

using (SqlConnection conn = new SqlConnection(ConnStr)) {

DataTable dt = new DataTable();

SqlDataAdapter da = new SqlDataAdapter();

SqlCommand cmd = new SqlCommand(Sqlstr, conn); cmd.Connection = conn;

cmd.Parameters.AddRange(param); da.SelectCommand = cmd; conn.Open();

33

da.Fill(dt); conn.Close(); return dt; } }

///

/// 批量执行SQL语句 ///

/// /// ///

public static Int32 ExecuteSqls(String[] Sqlstr, List param) {

String ConnStr = SQLDbHelper.GetSqlConnection();

using (SqlConnection conn = new SqlConnection(ConnStr)) {

SqlCommand cmd = new SqlCommand(); SqlTransaction tran = null; cmd.Transaction = tran; try {

conn.Open();

tran = conn.BeginTransaction(); cmd.Connection = conn; cmd.Transaction = tran;

Int32 count = Sqlstr.Length;

for (Int32 i = 0; i < count; i ++ ) {

cmd.CommandText = Sqlstr[i];

cmd.Parameters.AddRange(param[i]); cmd.ExecuteNonQuery(); }

tran.Commit(); return 1; } catch {

tran.Rollback(); return 0; }

finally

34

{

cmd.Dispose(); conn.Close(); } } } } }

最后,右单击项目名“DBUtility”,在快捷菜单中单击“生成”菜单,编译生成该类库项目,若

成功,则自动生成程序集DBUtility.dll,保存在项目目录的bin\\Debug目录下。 (2)为IDAL项目添加接口文件

在IDAL项目中添加接口文件Iuserinfo.cs,首先将该接口的访问属性改为“public”,将命名空间改为“CSharpStudy.IDAL”,再添加代码,最后其完整内容如下: using System;

using System.Collections.Generic; using System.Text;

namespace CSharpStudy.IDAL {

public interface Iuserinfo {

bool validUser(string username,string password); } }

右单击项目名“IDAL”,在快捷菜单中单击“生成”菜单,编译生成该类库项目,若成功,则自动

生成程序集IDAL.dll,保存在项目目录的bin\\Debug目录下。 (3)为DALFactory项目添加类文件

在项目DALFactory中添加类文件DataAccess.cs,首先在文件的开始部分添加以下命名空间的引

用:

using System.Configuration; using System.Reflection;

然后将DataAccess类的访问属性定义为“public”,将命名空间改为“CSharpStudy.DALFactory”,

再添加代码,最后类文件DataAccess.cs完整内容如下: using System;

using System.Collections.Generic; using System.Text;

using System.Configuration; using System.Reflection;

namespace CSharpStudy.DALFactory {

public class DataAccess {

//以下是连接Access数据库的命名空间路径 //private static readonly string path =

35

ConfigurationSettings.AppSettings[\

//以下是连接SQLserver数据库的命名空间路径

private static readonly string path = ConfigurationSettings.AppSettings[\ public static CSharpStudy.IDAL.Iuserinfo Createuserinfo() {

string className = path + \ return

(CSharpStudy.IDAL.Iuserinfo)Assembly.Load(path).CreateInstance(className); } } }

右单击项目名“IDAL”,在快捷菜单中单击“生成”菜单,编译生成该类库项目,若成功,则自动

生成程序集IDAL.dll,保存在项目目录的bin\\Debug目录下。 (4)为OleDbDAL项目添加类文件

在OleDbDAL项目中添加类文件OleDbuserinfo.cs,首先在开始部分添加对以下命名空间的引用: using CSharpStudy.DBUtility; using System.Data;

using System.Data.OleDb;

然后将命名空间改为“CSharpStudy.OleDbDAL”,设计继承自CSharpStudy.IDAL.Iuserinfo接口的userinfo类(一定注意要将自动生成的OleDbuserinfo类改为userinfo类,并将访问属性改为public),最后OleDbuserinfo.cs的完整内容如下: using System;

using System.Collections.Generic; using System.Text;

using CSharpStudy.DBUtility; using System.Data;

using System.Data.OleDb;

namespace CSharpStudy.OleDbDAL {

public class userinfo : CSharpStudy.IDAL.Iuserinfo {

///

/// 验证用户登陆 ///

/// /// ///

public bool validUser(string username, string password) {

StringBuilder sb = new StringBuilder();

sb.Append(\ sb.Append(\ OleDbParameter[] param =

36

{OleDbHelper.GetParameter(\

OleDbHelper.GetParameter(\ };

DataTable table = OleDbHelper.ExecuteDt(sb.ToString(), param); if (table.Rows.Count > 0) {

return true; } else {

return false; } } } }

(5)为SQLDAL项目添加类文件

在项目SQLDAL项目中添加类文件SQLuserinfo.cs,首先在开始部分添加对以下命名空间的引用: using CSharpStudy.DBUtility; using System.Data;

using System.Data.SqlClient; 然后将命名空间改为“CSharpStudy.SQLDAL”,设计继承自CSharpStudy.IDAL.Iuserinfo接口的

userinfo类(一定注意要将自动生成的SQLuserinfo类改为userinfo类,并将访问属性改为public),最后该文件的完整内容如下: using System;

using System.Collections.Generic; using System.Text;

using CSharpStudy.DBUtility; using System.Data;

using System.Data.SqlClient;

namespace CSharpStudy.SQLDAL {

public class userinfo : CSharpStudy.IDAL.Iuserinfo {

public bool validUser(string username, string password) {

StringBuilder sb = new StringBuilder();

sb.Append(\ sb.Append(\ SqlParameter[] param = {

37

SQLDbHelper.GetParameter(\

SQLDbHelper.GetParameter(\ };

DataTable table = SQLDbHelper.ExecuteDt(sb.ToString(), param); if (table.Rows.Count > 0) {

return true; } else {

return false; } } } }

(6)为BLL项目添加类文件

在BLL项目中添加类文件userinfo.cs,然后在userinfo.cs的开始部分添加以下命名空间的引

用:

using CSharpStudy.IDAL;

using CSharpStudy.DALFactory; using System.Web; using System.Data;

然后,把userinfo类的访问属性改为“public”,将命名空间改为“CSharpStudy.BLL”,并为

userinfo.cs添加内容,最后userinfo.cs文件的完整代码如下: using System;

using System.Collections.Generic; using System.Text;

using CSharpStudy.IDAL;

using CSharpStudy.DALFactory; using System.Web; using System.Data;

namespace CSharpStudy.BLL {

public class userinfo {

private static readonly Iuserinfo user = DataAccess.Createuserinfo(); public bool validUser(string username, string password) {

return user.validUser(username, password); }

38

} }

8.修改OleDbDAL项目和SQLDAL项目的程序集名和命名空间名 如下图所示,右单击OleDbDAL项目,选择“属性”,打开“属性”对话框,将程序集名称和默认

空间名称均改为CSharpStudy.OleDbDAL。使用同样的方法,将SQLDAL项目的程序集名和默认命名空间均改为CSharpStudy.SQLDAL。

9.为各项目添加所需的引用

该步骤也和步骤8同时完成,即每次完成某类库项目的代码编写后,参照下面步骤给各类库项目

添加相应命名空间的引用,并编译生成该项目的程序集。 (1)为SQLDAL项目添加所需的引用

为SQLDAL项目分别添加对IDAL项目和DBUtility项目的引用。 (2)为OleDbDAL项目添加所需的引用

为OleDbDAL项目分别添加对IDAL项目和DBUtility项目的引用。

39

本文来源:https://www.bwwdw.com/article/c2hg.html

Top