VS2022实现3/n Tier模式实现数据库查询(MySQL连接)


前言

软件体系结构实验七  联调&目的系统实现


一、创建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驱动下载及安装 (免登录注册)

中查看具体操作。


总结

  • 29
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序也风流

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值