VS2022实现用客户端引用服务连接数据库 (MySQL连接)


前言

软件体系结构实验六  数据服务&使用-服务方式


一、创建web服务项目

打开VS,点击创建新项目,选择ASP.NET Web应用程序(NEK Framework),下一步,修改项目信息,点击创建,选择Web Froms或空都行,点击创建(如下图所示)

二、添加web服务(asmx)文件

右击项目,点击添加-新建项,选择Web服务(ASMX),点击创建

三、安装MySql.Data

选择工具中的NuGet包管理器,并选择管理解决方案的NuGet程序包。在“浏览”的界面中搜索MySql,选择第一个MySql.Data,勾选项目并点击安装,等待安装完成(安装过程中会弹出两个弹框分别选择应用和我接受)(如下图所示)

四、编写功能代码

在新建的Web服务(ASMX)文件中编写功能代码(调用数据库数据)

[WebMethod]
public string Student() {
    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();
    string tableData = " 编号    姓名    性别   年龄    班级        专业\n";
    while (reader.Read())
    {
        tableData+= reader.GetString("id") +"  "
            + reader.GetString("name") + "     "
            + reader.GetString("gender") + "       "
            + reader.GetString("age") + "    "
            + reader.GetString("class") + "   "
            + reader.GetString("major") +"\n";
    }
    conn.Close();
    return tableData;
}

五、创建WPF应用项目

右击解决方案,添加,新建项目,选择WPF应用 (NEK Framework),下一步,修改项目信息,点击创建。

六、运行asmx文件

选择并打开该文件,点击运行

七、添加服务引用

复制之前运行ASMX文件的网址,在新建的WPF应用项目-WpfApp1右击选择添加-服务引用,将复制的网址粘贴在地址中,点击发现(服务中会显示查询的结果),点击确定

八、完善调用服务的代码

在MainWindow.xaml文件中利用工具箱添加按钮,并双击按钮跳转到.cs文件中,在函数中填写相应代码(如下图所示)

namespace WpfApp1
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        private WebService1SoapClient ws;
        public MainWindow()
        {
            InitializeComponent();
            ws = new WebService1SoapClient();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            MessageBox.Show("" + ws.Student());
        }
    }
}

九、设置启动项并运行

右击WpfApp1,将WpfApp1设置为启动项,点击启动按钮,运行项目

数据库的表中内容


其他

有部分电脑会出现信任证书的问题,提示远程连接无效,可按下面方式解决

using System.Security.Cryptography.X509Certificates;
using System.Net.Security;

//放在MainWindow(){}里
System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };

备注

运行程序前还需要在本机中装ODBC数据源来与数据库连接,由于在之前VS2022实现用Web端连接数据库 (MySQL连接)中详细介绍过,所以本文没在介绍,若没有安装的同学请到VS2022实现用Web端连接数据库 (MySQL连接)

或到 qiao_quite博主的博客MySQL的ODBC驱动下载及安装 (免登录注册)

中查看具体操作。


总结

在本学期的软件体系结构课程学习中,我有机会深入学习客户端调用web服务来间接调用数据库。学习过程中,查看了CSDN上博主大大们提供的丰富教程,给予了我极大的帮助,让我能够一步步的完成实验要求。我整理了本人在实验过程中的步骤和遇到的问题及解决方法,希望能为后来者提供参考。

  • 24
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序也风流

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

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

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

打赏作者

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

抵扣说明:

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

余额充值