VS2022利用“视图”菜单中的“服务器资源管理器”的“数据连接”功能建立数据连接时,缺少mysql数据源选项,如下图1所示

图1

查了一下,VS2022目前不支持添加该数据源。

那么我们可以通过代码的方式建立数据库连接,对数据库进行增删改查操作。

方法如下:

1.在vs2022的解决方案资源管理器中,选择当前要进行数据库操作的项目,右键弹出快捷菜单,选择“管理NuGet程序包(N)...”这一项,如图2所示。

图2

        在弹出的窗口中选择“浏览”选项卡,在搜索框中输入“mysql”,其后便会出现"MySql.Data"这一项,单击安装即可,如图3所示。

 

2.安装完成后,即可在代码中测试一下连接数据库并进行增删改查操作的功能。

下面连接数据库并进行增删改查操作:

首先创建webForm页面,在页面上放上五个Button控件和一个GridView1控件,

如图4所示。GridView1控件属性设置如下

AllowPaging:True

PageSize:5

图4

1.将数据库中blogs表中内容读取并在网页中以表格的形式显示出来。

双击“读取数据库”按钮,进入其click事件,编写如下代码

MySqlConnection conn = new MySqlConnection("server=localhost;Database=blogs;Uid=root;Pwd=123456;");
            conn.Open();
            string sql = "select * from blogs";
            MySqlCommand command = new MySqlCommand(sql, conn);
            MySqlDataReader reader = command.ExecuteReader();
            Response.Write("<table border='1' cellpadding='10' textalign='center'><tr><td>编号</td><td>主题</td><td>内容</td><td>作者</td><td>日期</td><td>点击次数</td></tr>");
            Response.Write("\n");
            while (reader.Read())
            {
                Response.Write("<tr><td>" + reader.GetString("id") + "</td><td>"
                    + reader.GetString("title")
                    + "</td><td>" + reader.GetString("content") + "</td><td>"
                    + reader.GetString("author") + "</td><td>"
                    + reader.GetString("submissionDate") + "</td><td>"
                    + reader.GetString("browsecount") + "</td></tr>");
            }
            Response.Write("</table>");
            conn.Close();

运行效果如图5所示

图5

        2.向数据库表中插入数据。

双击“插入数据”按钮,进入其click事件,编写如下代码:

         //插入数据
            MySqlConnection conn = new MySqlConnection("server=localhost;Database=blogs;Uid=root;Pwd=123456;");
            conn.Open();
            MySqlCommand command = new MySqlCommand("insert into blogs(title,content,author,submissionDate,browsecount) values('blog2','this is my blog2','xxx',now(),0)", conn);
            int rows = command.ExecuteNonQuery();
            if (rows > 0)
            {
                Response.Write("<script>alert('插入成功!')</script>");
                ListBlogs(conn);
            }
            conn.Close();

如果想使用带参数的sql语句,则代码如下

//插入数据--带参数sql语句
            MySqlConnection conn = new MySqlConnection("server=localhost;Database=blogs;Uid=root;Pwd=123456;");
            conn.Open();
            String sql = "insert into blogs(title,content,author,submissionDate,browsecount) values('blog2',@content,'xxx',now(),0)";
            MySqlCommand command = new MySqlCommand(sql, conn);
            command.Parameters.AddWithValue("@content", "this is my blog with parameters");
            int rows = command.ExecuteNonQuery();
            if (rows > 0)
            {
                Response.Write("<script>alert('插入成功!')</script>");
                ListBlogs(conn);
            }
            conn.Close();

3.修改数据库表中数据。

双击“修改数据”按钮,进入其click事件,编写如下代码:

//修改数据
            MySqlConnection conn = new MySqlConnection("server=localhost;Database=blogs;Uid=root;Pwd=123456;");
            conn.Open();
            MySqlCommand command = new MySqlCommand("update blogs set browsecount=browsecount+1 where id=1", conn);
            int rows = command.ExecuteNonQuery();
            if (rows > 0)
            {
                Response.Write("<script>alert('更新成功!')</script>");
                ListBlogs(conn);
            }
            conn.Close();

4.删除数据库表中数据。

双击“删除数据”按钮,进入其click事件,编写如下代码:

  //删除数据
            MySqlConnection conn = new MySqlConnection("server=localhost;Database=blogs;Uid=root;Pwd=123456;");
            conn.Open();
            MySqlCommand command = new MySqlCommand("delete from blogs where id=2", conn);
            int rows = command.ExecuteNonQuery();
            if (rows > 0)
            {
                Response.Write("<script>alert('删除成功!')</script>");
                ListBlogs(conn);
            }
            conn.Close();

5.使用GridView数据网格显示数据库表中数据

//使用GridView数据网格显示数据库表中数据
            MySqlConnection conn = new MySqlConnection("server=localhost;Database=blogs;Uid=root;Pwd=123456;");
            conn.Open();
            string sql = "select * from blogs";
            MySqlCommand command = new MySqlCommand(sql, conn);
            MySqlDataAdapter adapter = new MySqlDataAdapter(command);
            DataSet ds= new DataSet();
            adapter.Fill(ds, "blogs");
            GridView1.DataSource = ds;
            GridView1.DataMember = "blogs";
            GridView1.DataBind();
            conn.Close();
            conn.Dispose();

则运行后效果如下图6所示。

图6

如果选择某一页时,页面显示对应页内容,则为GridView1的PageIndexChanging事件编写代码如下:

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            MySqlConnection conn = new MySqlConnection("server=localhost;Database=blogs;Uid=root;Pwd=123456;");
            conn.Open();
            string sql = "select * from blogs";
            MySqlCommand command = new MySqlCommand(sql, conn);
            MySqlDataAdapter adapter = new MySqlDataAdapter(command);
            DataSet ds = new DataSet();
            adapter.Fill(ds, "blogs");
            GridView1.PageIndex = e.NewPageIndex;
            GridView1.DataSource = ds;
            GridView1.DataMember = "blogs";
            GridView1.DataBind();
            conn.Close();
            conn.Dispose();
        }

当我们单击GridView1底部的页码2时,运行结果如图7所示

图7

6.查找数据库表中数据

双击“搜索”按钮,进入其Click事件,编写代码如下

//搜索数据
            MySqlConnection conn = new MySqlConnection("server=localhost;Database=blogs;Uid=root;Pwd=123456;");
            conn.Open();
            string sql = "select * from blogs where title like '%" + txtTitle.Text.Trim() + "'";
            MySqlCommand command = new MySqlCommand(sql, conn);
            MySqlDataAdapter adapter = new MySqlDataAdapter(command);
            DataSet ds = new DataSet();
            adapter.Fill(ds, "blogs");
            GridView1.DataSource = ds;
            GridView1.DataMember = "blogs";
            GridView1.DataBind();
            conn.Close();
            conn.Dispose();

运行结果如图8所示

图8

这就是在vs2022开发平台下使用C#语言对mysql数据库的数据的增删改查、使用数据控件GridView显示数据及带参数的MySqlCommand使用方法。 

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐