MySQL的DataAdapter用法

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL的DataAdapter用法

首先搭建好环境


我的数据库信息


123.png


在环境搭建好的情况下仔细阅读下面代码,基本都是固定格式,需要改的地方很少


using System;
using MySql.Data.MySqlClient;//新引入的命名空间
using System.Configuration;//新引入的命名空间
using System.Data;
using System.Data.SqlClient;
public partial class index : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected void select(object sender, EventArgs e)
    {
        //获得Web.config中的配置信息
        string sqlCconnStr = ConfigurationManager.ConnectionStrings["MySqlStr"].ConnectionString;
        //连接数据库 
        MySqlConnection sqlCon = new MySqlConnection(sqlCconnStr);
        //建立DataSet对象(相当于建立前台的虚拟数据库)
        DataSet ds = new DataSet();
        //建立DataTable对象(相当于建立前台的虚拟数据库中的数据表)
        DataTable dtable;
        //建立DataRowCollection对象(相当于表的行的集合)
        DataRowCollection coldrow;
        //建立DataRow对象(相当于表的列的集合)
        DataRow drow;
        //打开连接
        sqlCon.Open();
        //建立DataAdapter对象  
        string sltStr = "select id,username,password from user ";//重点,重点,重点,编写符合你查询条件的sql语句
        MySqlCommand sqlCmd = new MySqlCommand(sltStr, sqlCon);
        MySqlDataAdapter msda = new MySqlDataAdapter(sqlCmd);
        //将查询的结果存到虚拟数据库ds中的虚拟表tabuser中
        msda.Fill(ds, "tabuser");
        //将数据表tabuser的数据复制到DataTable对象(取数据)
        dtable = ds.Tables["tabuser"];
        //用DataRowCollection对象获取这个数据表的所有数据行
        coldrow = dtable.Rows;
        //逐行遍历,取出各行的数据
        for (int inti = 0; inti < coldrow.Count; inti++)
        {
            drow = coldrow[inti];
            Label1.Text += "Id:" + drow[0];
            Label1.Text += " username:" + drow[1];
            Label1.Text += " password:" + drow[2] + "<br />";
        }
        sqlCon.Close();
        sqlCon = null;
    }
    protected void update(object sender, EventArgs e)
    {
        //获得Web.config中的配置信息
        string sqlCconnStr = ConfigurationManager.ConnectionStrings["MySqlStr"].ConnectionString;
        //连接数据库 
        MySqlConnection sqlCon = new MySqlConnection(sqlCconnStr);
        //建立DataSet对象(相当于建立前台的虚拟数据库)
        DataSet ds = new DataSet();
        //建立DataTable对象(相当于建立前台的虚拟数据库中的数据表)
        DataTable dtable;
        //建立DataRowCollection对象(相当于表的行的集合)
        DataRowCollection coldrow;
        //建立DataRow对象(相当于表的列的集合)
        DataRow drow;
        //打开连接
        sqlCon.Open();
        //建立DataAdapter对象  
        string sltStr = "select id,username,password from user ";//重点,重点,重点,查询出所有的字段
        MySqlCommand sqlCmd = new MySqlCommand(sltStr, sqlCon);
        MySqlDataAdapter msda = new MySqlDataAdapter(sqlCmd);
        //建立 CommandBuilder 对象来自动生成 DataAdapter 的 Command 命令,否则就要自己编写
        //Insertcommand ,deletecommand , updatecommand 命令。
        MySqlCommandBuilder mySqlCommandBuilder = new MySqlCommandBuilder(msda);
        //将查询的结果存到虚拟数据库ds中的虚拟表tabuser中
        msda.Fill(ds, "tabuser");
        //将数据表tabuser的数据复制到DataTable对象(取数据)
        dtable = ds.Tables["tabuser"];
        //用DataRowCollection对象获取这个数据表的所有数据行
        coldrow = dtable.Rows;
        //重点,重点,重点,重点,重点,重点,重点,重点,重点
        //update你的数据(update user password = 123321 where id = 1)
        for (int inti = 0; inti < coldrow.Count; inti++)//重点,重点,重点
        {
            drow = coldrow[inti];
            if (drow["id"].ToString() == 1 + "")
            {
                drow["password"]="123321";
            }
        }
        msda.Update(ds, "tabuser");//重点,重点,重点,更新数据库
        sqlCon.Close();
        sqlCon = null;
    }
    protected void delete(object sender, EventArgs e)
    {
        //获得Web.config中的配置信息
        string sqlCconnStr = ConfigurationManager.ConnectionStrings["MySqlStr"].ConnectionString;
        //连接数据库 
        MySqlConnection sqlCon = new MySqlConnection(sqlCconnStr);
        //建立DataSet对象(相当于建立前台的虚拟数据库)
        DataSet ds = new DataSet();
        //建立DataTable对象(相当于建立前台的虚拟数据库中的数据表)
        DataTable dtable;
        //建立DataRowCollection对象(相当于表的行的集合)
        DataRowCollection coldrow;
        //建立DataRow对象(相当于表的列的集合)
        DataRow drow;
        //打开连接
        sqlCon.Open();
        //建立DataAdapter对象  
        string sltStr = "select id,username,password from user ";//重点,重点,重点,查询出所有的字段
        MySqlCommand sqlCmd = new MySqlCommand(sltStr, sqlCon);
        MySqlDataAdapter msda = new MySqlDataAdapter(sqlCmd);
        //建立 CommandBuilder 对象来自动生成 DataAdapter 的 Command 命令,否则就要自己编写
        //Insertcommand ,deletecommand , updatecommand 命令。
        MySqlCommandBuilder mySqlCommandBuilder = new MySqlCommandBuilder(msda);
        //将查询的结果存到虚拟数据库ds中的虚拟表tabuser中
        msda.Fill(ds, "tabuser");
        //将数据表tabuser的数据复制到DataTable对象(取数据)
        dtable = ds.Tables["tabuser"];
        //用DataRowCollection对象获取这个数据表的所有数据行
        coldrow = dtable.Rows;
        //逐行遍历,取出各行的数据,并且删除符合条件的数据(我要删除的id为4的记录)
        for (int inti = 0; inti < coldrow.Count; inti++)//重点,重点,重点,删除符合条件的数据
        {
            drow = coldrow[inti];
            if (drow["id"].ToString() == 4+"") {
                drow.Delete();
            }
        }
        msda.Update(ds,"tabuser");//重点,重点,重点,更新数据库
        sqlCon.Close();
        sqlCon = null;
    }
    protected void insert(object sender, EventArgs e)
    {
        //获得Web.config中的配置信息
        string sqlCconnStr = ConfigurationManager.ConnectionStrings["MySqlStr"].ConnectionString;
        //连接数据库 
        MySqlConnection sqlCon = new MySqlConnection(sqlCconnStr);
        //建立DataSet对象(相当于建立前台的虚拟数据库)
        DataSet ds = new DataSet();
        //建立DataTable对象(相当于建立前台的虚拟数据库中的数据表)
        DataTable dtable;
        //建立DataRow对象(相当于表的列的集合)
        DataRow drow;
        //打开连接
        sqlCon.Open();
        //建立DataAdapter对象  
        string sltStr = "select id,username,password from user ";//重点,重点,重点,查询出所有的数据
        MySqlCommand sqlCmd = new MySqlCommand(sltStr, sqlCon);
        MySqlDataAdapter msda = new MySqlDataAdapter(sqlCmd);
        //建立 CommandBuilder 对象来自动生成 DataAdapter 的 Command 命令,否则就要自己编写
        //Insertcommand ,deletecommand , updatecommand 命令。
        MySqlCommandBuilder mySqlCommandBuilder = new MySqlCommandBuilder(msda);
        //将查询的结果存到虚拟数据库ds中的虚拟表tabuser中
        msda.Fill(ds, "tabuser");
        //将数据表tabuser的数据复制到DataTable对象(取数据)
        dtable = ds.Tables["tabuser"];
        //增加记录
        drow = ds.Tables["tabuser"].NewRow();
        //给该记录赋值
        drow[0] = 6;//重点,重点,重点,给id赋值
        drow[1] = "6";//重点,重点,重点,给username赋值
        drow[2] = "6";//重点,重点,重点,给password赋值
        ds.Tables["tabuser"].Rows.Add(drow);//重点,重点,重点,将记录添加的虚拟数据库
        //提交更新
        msda.Update(ds, "tabuser"); //重点,重点,重点,更新真正的数据库
        sqlCon.Close();
        sqlCon = null;
    }
}


最后,我感觉我不喜欢这种用法,SQL语句太少,除了Select别的基本上都没有用到,我的意见是:select用这种方法,update,insert,delete不用这种方法


如果是我的话,没有强制要求的话,我会用  


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
关系型数据库 MySQL 索引
mysql中EXISTS用法注意点
mysql中EXISTS用法注意点
|
17天前
|
数据采集 关系型数据库 MySQL
MySQL常用函数:IF、SUM等用法
本文介绍了MySQL中常用的IF、SUM等函数及其用法,通过具体示例展示了如何利用这些函数进行条件判断、数值计算以及复杂查询。同时,文章还提到了CASE WHEN语句和其他常用函数,如COUNT、AVG、MAX/MIN等,强调了它们在数据统计分析、数据清洗和报表生成中的重要性。
|
2月前
|
存储 SQL 关系型数据库
mysql用法
mysql用法
44 4
|
3月前
|
存储 自然语言处理 关系型数据库
MySQL的match用法说明
MySQL的match用法说明
140 4
|
3月前
|
SQL 关系型数据库 MySQL
MySQL的用法
MySQL的用法
68 1
|
4月前
|
存储 关系型数据库 MySQL
mysql中的left join、right join 、inner join的详细用法
【8月更文挑战第16天】在MySQL中,`INNER JOIN`、`LEFT JOIN`与`RIGHT JOIN`用于连接多表。`INNER JOIN`仅返回两表中匹配的行;`LEFT JOIN`保证左表所有行出现于结果中,右表无匹配时以NULL填充;`RIGHT JOIN`则相反,保证右表所有行出现于结果中。例如,查询学生及其成绩时,`INNER JOIN`仅显示有成绩的学生;`LEFT JOIN`显示所有学生及他们对应的成绩,无成绩者成绩列为空;`RIGHT JOIN`显示所有成绩及对应学生信息,无学生信息的成绩条目则为空。
139 1
|
5月前
|
存储 JSON 关系型数据库
mysql中find_in_set()函数用法详解及增强函数
总结而言,`FIND_IN_SET()`是MySQL中处理由逗号分隔的字符串列表的一种便捷方法,尤其适用于列表相对较短且不经常更改的场景。然而,对于更为复杂的需要高性能和可扩展性的数据库设计,它可能不是最优选择,应考虑使用更加正规化的数据库结构。
706 2
mysql中find_in_set()函数用法详解及增强函数
|
3月前
|
存储 自然语言处理 关系型数据库
全文索引MySQL的match用法是什么?
【9月更文挑战第2天】全文索引MySQL的match用法是什么?
105 0
|
6月前
|
关系型数据库 MySQL
【随手记】MySQL中ROW_NUMBER()、RANK()和DENSE_RANK()函数的用法
【随手记】MySQL中ROW_NUMBER()、RANK()和DENSE_RANK()函数的用法
196 1
|
6月前
|
关系型数据库 MySQL
MySQL中CASE WHEN用法总结
MySQL中CASE WHEN用法总结

推荐镜像

更多
下一篇
DataWorks