查看: 134|回复: 6

浅谈ASP.NET Web (C#) 应用程序连接MySQL数据库的方法

[复制链接]

3

主题

6

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2022-9-22 10:11:58 | 显示全部楼层 |阅读模式
注:以下内容仅供初学者进行简单了解,如有概念性错误麻烦指出,谢谢。

需要准备的东西:


  • MySQL Server
  • MySQL for Visual Studio
  • Connector/NET
  • 一个可视化的数据库管理工具[如果不太习惯命令提示符下建立表格的话,个人喜欢DBeaver]
0.安装MySQL Server(可以参考黑里怕大佬的教程或者一叶知秋大佬的教程)

1.安装MySQL for Visual Studio与Connector/NET(Windows下的安装):

1.1 如果之前安装MySQL之后有MySQL Installer,先运行MySQL Installer

之后会出现以下界面:



MySQL Installer的界面

Step 1. 单击 Add ... 以进入添加组件的模式


Step 2. 选择Applications->MySQL for Visual Studio 1.2 (也可能是其他版本)->MySQL for Visual Studio 1.2.9 (也可能是其他版本)


Step 3. 单击绿色的向右箭头添加MySQL for Visual Studio 1.2.9到右侧的Products To Be Installed




Step 4. 选择Applications->MySQL Connectors->Connector/NET->Connector/NET 8.0 (根据实际情况选择版本,如果.NET Framework版本高于4.6.2可以使用8.0)->Connector/NET 8.0.22


Step 5. 单击绿色的向右箭头添加Connector/NET 8.0.22到右侧的Products To Be Installed


Step 6.单击Next>进入以下界面:


Step 7.单击Execute进行安装:


Step 8.安装完成,单击Next>


Step 9.安装完成,出现下图界面,单击Finish完成初步安装:


肉眼可见新增两个组件:


<hr/>      当然,以上内容需要有MySQL Installer的大佬才能这么操作,那么接下来需要说说没有MySQL Installer的大佬怎么安装。
1.2 通过MSI安装包安装MySQL for Visual Studio与Connector/NET

Step 1.下载MySQL for Visual StudioConnector/NET的安装包
下载地址:

  • MySQL for Visual Studio
  • Connector/NET
当然,MySQL for Visual Studio也可以下载ZIP Archive版本。只是这里仅对MSI Installer版本进行说明:
Step 2.运行MySQL for Visual StudioConnector/NET安装程序
✦这里我先安装Connector/NET


Step 3.单击Next


Step 4.选择安装类型,初学或者选择困难症建议选择Typical,常用的组件基本都会安装


Step 5.单击Install进行安装


Step 6.Connector/NET安装完成:


Step 7.安装MySQL for Visual Studio,过程同上即可(实际上是手懒不想多打字了而已
2.通过MySQL for Visual Studio插件连接:

Step 1.启动Visual Studio (这里演示的版本是Visual Studio Professional 2019)


Step 2.新建http://ASP.NET Web 应用程序 (.NET Framework)


Step 3.新建数据连接
Step 3.1.打开服务器资源管理器右键单击数据连接,单击添加连接


Step 3.2.选择数据源MySQL Database,单击继续 :


Step 3.3.完善连接数据库的信息:


我连接的数据库信息如下:


单击测试连接检查是否正确连接,点击确定以添加连接


添加成功
Step 3.4.添加控件
GridView为例:
        在选择数据源下拉菜单中选择<新建数据源...>


数据源配置向导中选择数据库然后单击确定 :


选择刚才添加的连接 然后单击下一步


继续下一步(这样会把连接存储到应用程序配置文件中)


这里选择指定自定义SQL语句或存储过程 (默认的指定来自表或视图的列使用的语法不被MySQL接受),单击下一步


SELECT * FROM CITY为例自定义SELECT语句,单击下一步


接下来单击“测试查询”检验语法是否正确,如果正确,单击完成。


添加数据源完成。


3.通过Connector/NET组件连接:

Step 1.启动Visual Studio
Step 2.新建http://ASP.NET Web 应用程序 (.NET Framework)
✦因为之前我安装的Connector/NET 8.0.22,它有一些命名空间下的方法需要在.NET Framework 4.5.2及以上版本才能正常使用。所以这里为了方便演示我使用了更新的.NET Framework 4.7.2


Step 3.修改Web.config文件
Web.config文件下添加形如以下内容的配置代码段到<configuration></configuration>之间
<connectionStrings>
    <add name="name" connectionString="server=servername;user id=username;password=password;persistsecurityinfo=True;database=database"
      providerName="MySql.Data.MySqlClient" />
  </connectionStrings>
需要知道的内容:

  • add name里填这段内容的名称
  • server填写要连接的服务器
  • user id填写连接MySQL数据库所使用的用户ID
  • password填写用户ID对应的MySQL密码
  • persistsecurityinfo表示是否保存安全信息,True是保存,False是不保存
  • database里填写要连接的数据库
  • providerName表示要加载的数据库驱动,这里连的是MySQL,所以填MySql.Data.MySqlClient
那么这里我演示以root用户连接本地MySQL下的test数据库为例,它的配置代码段如下:
<connectionStrings>
    <add name="testconn" connectionString="server=localhost;user id=root;password=123456;persistsecurityinfo=True;database=test"
      providerName="MySql.Data.MySqlClient" />
  </connectionStrings>将其添加到Web.config文件中,大概是这个样子:
<?xml version="1.0" encoding="utf-8"?>
<!--
  有关如何配置 ASP.NET 应用程序的详细信息,请访问
  https://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
  <connectionStrings>
    <add name="testconn" connectionString="server=localhost;user id=root;password=123456;persistsecurityinfo=True;database=test"
         providerName="MySql.Data.MySqlClient" />
  </connectionStrings>
  <system.web>
    <compilation debug="true" targetFramework="4.7.2" />
    <httpRuntime targetFramework="4.7.2" />
  </system.web>
  <system.codedom>
    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+" />
    </compilers>
  </system.codedom>
</configuration>然后保存
Step 4.添加MySQL.Data.DLL模块
Step 4.1.右键单击引用,选择添加引用


Step 4.2.单击选择红框中的浏览


Step 4.3.单击选择红框中的浏览添加MySQL.Data.DLL


✦因为之前安装Conncteor/NET的时候选择了Typical安装,它默认的安装路径应该是:C:\Program Files (x86)\MySQL\MySQL Connector Net 8.0.23\Assemblies\v4.5.2
(版本号可能有差异)
单击添加完成添加,单击确定保存


Step 5.编辑Web窗体的CS源代码
这里以WebForm1.aspx为例,为了简便地观察效果,我们先添加一个GridView,但是不选择数据源


Step 5.1.打开WebForm1.aspx.cs,在文件首部添加以下代码:
using System.Configuration;
using MySql.Data.MySqlClient;
注册访问MySQL数据库相关的命名空间
✦为了调试时直接显示结果,下面所有内容均会写到Page_Load方法下面
        protected void Page_Load(object sender, EventArgs e)
        {
            String conn = ConfigurationManager.ConnectionStrings["testconn"].ToString();
            //获取Web.config文件里关于数据库连接的字符串
            MySqlConnection mycon = new MySqlConnection(conn);
            //新建连接实例,对数据库进行连接
            mycon.Open();//打开数据库
            MySqlCommand mycmd = new MySqlCommand("select * from studentinfo;", mycon);
            //实例化MySqlCommand类并将select * from studentinfo;语句传递到连接的数据库中
            MySqlDataReader myread = mycmd.ExecuteReader();
            //对刚才执行查询指令后的结果进行读取
            GridView1.DataSource = myread;
            //将读取结果传递到GridView的数据源
            GridView1.DataBind();
            //对GridView的数据进行绑定
            mycon.Close();
            //关闭数据库连接
        }
这里只简单演示SELECT查询语句,完整代码如下:
using System;
using System.Configuration;
using MySql.Data.MySqlClient;

namespace WebApplication7
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            String conn = ConfigurationManager.ConnectionStrings["testconn"].ToString();
            MySqlConnection mycon = new MySqlConnection(conn);
            mycon.Open();
            MySqlCommand mycmd = new MySqlCommand("select * from studentinfo;", mycon);
            MySqlDataReader myread = mycmd.ExecuteReader();
            GridView1.DataSource = myread;
            GridView1.DataBind();
            mycon.Close();
        }
    }
}
它的查询结果如下:


这样说明连接成功。更多关于MySQL的操作可以参考文档:
中文文档是MySQL 5.1时期的翻译版,可能略有不同
回复

使用道具 举报

3

主题

6

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2022-9-22 10:12:45 | 显示全部楼层
希望有人看……
回复

使用道具 举报

7

主题

15

帖子

29

积分

新手上路

Rank: 1

积分
29
发表于 2022-9-22 10:13:32 | 显示全部楼层
第三步添加控件那里的任务在哪里找啊(小白不太懂
回复

使用道具 举报

1

主题

4

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2022-9-22 10:14:12 | 显示全部楼层
哦哦,这个我疏忽了,把窗体文件的设计视图打开,然后按“视图”->“工具箱”,或者Ctrl+Alt+X热键唤起,在工具箱里有个“搜索工具箱”,直接搜索GridView,然后把控件拖到设计视图里或者双击控件添加
回复

使用道具 举报

1

主题

6

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2022-9-22 10:14:47 | 显示全部楼层
太好了,终于找到你[飙泪笑]
回复

使用道具 举报

0

主题

6

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-9-22 10:15:04 | 显示全部楼层
你好,请问箭头不是绿色,迁移不了怎么弄呀[可怜][可怜]
回复

使用道具 举报

3

主题

6

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2022-9-22 10:15:34 | 显示全部楼层
是MySQL组件安装的部分吗?那里面的组件可以在MySQL的官网里单独下载安装。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表