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使用方法。