文章目录
目录
前言
软件体系结构实验六 数据服务&使用-服务方式
一、创建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上博主大大们提供的丰富教程,给予了我极大的帮助,让我能够一步步的完成实验要求。我整理了本人在实验过程中的步骤和遇到的问题及解决方法,希望能为后来者提供参考。