文章目录
目录
前言
软件体系结构实验七 联调&目的系统实现
一、创建web服务项目(作为表现层)
右击解决方案,添加,新建项目,选择ASP.NET Web应用程序(NEK Framework),下一步,修改项目信息,点击创建,选择空点击创建
二、添加web窗体(作为最终显示页面)
右击刚创建的web项目,选择添加-新建项, 选择web窗体(可修改信息)点击创建
三、创建第二个web服务(作为控制层)
右击解决方案,添加,新建项目,选择ASP.NET Web应用程序(NEK Framework),下一步,修改项目信息,点击创建,选择空点击创建(没有截图~)
四、添加web服务(作为控制文件)
右击新建的第二个项目(如“WebApplicationCon”),选择添加-新建项,选择web服务(ASMX)(修改命名信息),点击创建。
五、创建第三个web服务项目(作为数据层)
右击解决方案,添加,新建项目,选择ASP.NET Web应用程序(NEK Framework),下一步,修改项目信息,点击创建,选择空点击创建(没有截图~ 可参考创建第一个项目的截图),添加ASMX文件
六、添加类文件
右击新建的第三个项目(如“WebApplicationData”),选择添加-新建项,选择类(修改命名信息),点击创建。
七、安装下载Mysql.Data
选择工具中的NuGet包管理器,并选择管理解决方案的NuGet程序包。在“浏览”的界面中搜索MySql,选择第一个MySql.Data,勾选项目并点击安装,等待安装完成(安装过程中会弹出两个弹框分别选择应用和我接受)(如下图所示)
注意:我是将三个项目都安装了,实际只有数据层(“WebApplicationData”)用到了。可以只安装一个。
八、在创建的类文件中填写代码(创建实体)
在类文件中定义变量(根据数据库表的属性声明)
// 类文件 (Students.cs)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace WebApplicationData
{
public class Students
{
public string id;
public string name;
public string gender;
public string age;
public string classId;
public string major;
}
}
九、读取数据库信息
在新建的第三个项目(如“WebApplicationData”)中的ASMX文件,填写代码,连接数据库并读取信息
// 数据层(WebApplicationData)的ASMX文件
[WebMethod]
public List<Students> Data()
{
MySqlConnection conn = new MySqlConnection("server=localhost;Database=architecturedb;Uid=root;Pwd=root;");
conn.Open();
string sql = "select * from student_info";
MySqlCommand command = new MySqlCommand(sql, conn);
MySqlDataReader reader = command.ExecuteReader();
List<Students> list = new List<Students>();
while (reader.Read())
{
Students students = new Students();
students.id= reader.GetString("id");
students.name=reader.GetString("name");
students.gender=reader.GetString("gender");
students.age=reader.GetString("age");
students.classId=reader.GetString("class");
students.major=reader.GetString("major");
list.Add(students);
}
conn.Close();
return list;
}
十、添加服务引用(控制层调用数据层)
右击新建的第三个项目(如“WebApplicationData”)中ASMX文件,选择在浏览器中查看,复制当前页面的网址,右击新建的第二个项目(如“WebApplicationCon”),选择服务引用,粘贴网址,点击跳转,(会显示对应的ASMX文件),(修改服务名称),点击确定。
十一、控制层调用数据层获取数据库数据
在新建的第二个项目(如“WebApplicationCon”)中的ASMX文件,填写代码,调用数据层信息,获取信息
// 控制层(WebApplicationCon)的ASMX文件
[WebMethod]
public WebApplicationCon.ServiceReferencedata.Students[] datacon()
{
WebServiceDataSoapClient wsc = new WebServiceDataSoapClient();
WebApplicationCon.ServiceReferencedata.Students[] stu= wsc.Data();
return stu;
}
十二、添加服务引用(表现层调用控制层)
右击新建的第三个项目(如“WebApplicationCon”)中ASMX文件,选择在浏览器中查看,复制当前页面的网址,右击新建的第一个项目(如“WebApplicationTier”),选择服务引用,粘贴网址,点击跳转,(会显示对应的ASMX文件),(修改服务名称),点击确定。(没有截图~,可参考第十步)
十三、控制层调用数据层获取数据库数据
在新建的第一个项目(如“WebApplicationTier”)中的web窗体文件,填写代码,调用控制层信息,获取并输出信息
// web窗体文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using WebApplicationTier.ServiceReferenceface;
namespace WebApplicationTier
{
public partial class WebForm1 : System.Web.UI.Page
{
private WebServiceConSoapClient ws;
protected void Page_Load(object sender, EventArgs e)
{
ws = new WebServiceConSoapClient();
WebApplicationTier.ServiceReferenceface.Students[] list=ws.datacon();
Response.Write("<div class = 'dingwei'>");
Response.Write("<div id='adds' >学生信息</div>");
Response.Write("<div id='height_10'></div>");
Response.Write("</div>");
Response.Write("<table border='1' cellpadding='10' textalign='center'>");
Response.Write("<td>学号</td><td>姓名</td><td>性别</td><td>年龄</td><td>班级</td><td>专业</td>");
for (int i = 0; i < list.Length; i++)
{
Response.Write("<tr>");
Response.Write("<td>" + list[i].id + "</td><td>" + list[i].name + "</td><td>" + list[i].gender + "</td><td>" + list[i].age + "</td><td>" + list[i].classId + "</td><td>"+ list[i].major + "</td>");
Response.Write("</tr>");
}
Response.Write("</table>");
Response.Write("<br>");
Response.End();
}
}
}
十四、运行程序
备注
运行程序前还需要在本机中装ODBC数据源来与数据库连接,由于在之前VS2022实现用Web端连接数据库 (MySQL连接)中详细介绍过,所以本文没在介绍,若没有安装的同学请到VS2022实现用Web端连接数据库 (MySQL连接)
或到 qiao_quite博主的博客MySQL的ODBC驱动下载及安装 (免登录注册)
中查看具体操作。