1.使用DataReader方式读取资料

[csharp]view

plaincopy

StringconnString=ConfigurationManager.ConnectionStrings["astt"].ConnectionString;

//如果数据库连接字符串有加密,可以经过解密后重新获得连接字符串

DbConnectionStringBuilderconnBuilder=newDbConnectionStringBuilder();

connBuilder.ConnectionString=connString;

connBuilder["DataSource"]=connBuilder["DataSource"];//可加上解密方法

connBuilder["UserID"]=connBuilder["UserID"];//可加上解密方法

connBuilder["Password"]=connBuilder["Password"];//可加上解密方法

connString=connBuilder.ConnectionString;

using(OleDbConnectionconn=newOleDbConnection(connString))

{

try

{

conn.Open();

using(OleDbCommandcmd=newOleDbCommand())

{

cmd.CommandText="select*froms_usermwhererownum<=?";

cmd.CommandType=CommandType.Text;

cmd.Connection=conn;

cmd.Parameters.Add("?",OleDbType.Integer).Value=5;//cmd.Parameters.Add(newOleDbParameter("?",5));

using(OleDbDataReaderreader=cmd.ExecuteReader())

{

while(reader.Read())

{

MessageBox.Show(reader.GetString(1),"资料");

}

}

}

conn.Close();

}

catch(Exceptionex)

{

MessageBox.Show(ex.Message,"error");

return;

}

}

2.使用DataAdapter与DataSet方式读取资料.

[csharp]view

plaincopy

StringconnString=ConfigurationManager.ConnectionStrings["astt"].ConnectionString;

using(OleDbConnectionconn=newOleDbConnection(connString))

{

try

{

using(OleDbCommandcmd=newOleDbCommand())

{

cmd.CommandText="select*froms_usermwhererownum<=?";

cmd.CommandType=CommandType.Text;

cmd.Connection=conn;

cmd.Parameters.Add("?",OleDbType.Integer).Value=5;//cmd.Parameters.Add(newOleDbParameter("?",5));

DataSetds=newDataSet();

OleDbDataAdapteradapter=newOleDbDataAdapter(cmd);

adapter.Fill(ds,"s_userm");

foreach(DataRowdrinds.Tables[0].Rows)

{

MessageBox.Show(Convert.ToString(dr["user_nm"]),"资料");

}

//listBox1.DataSource=ds.Tables[0].DefaultView;

//listBox1.DisplayMember="user_nm";

//listBox1.ValueMember="user_no";

listBox1.DataSource=ds;

listBox1.DisplayMember="s_userm.user_nm";

listBox1.ValueMember="s_userm.user_no";

dataGridView1.DataSource=ds.Tables[0].DefaultView;

dataGridView1.ReadOnly=true;

}

}

catch(Exceptionex)

{

MessageBox.Show(ex.Message,"error");

return;

}

}

3.使用DataAdapter与DataSet对单表的增删改查,根据Command的查询语法,使用CommandBuilder自动生成增删改的语法.

[csharp]view

plaincopy

StringconnString=ConfigurationManager.ConnectionStrings["astt"].ConnectionString;

using(OleDbConnectionconn=newOleDbConnection(connString))

{

OleDbCommandcmd=newOleDbCommand();

cmd.CommandText="select*froms_usermwhererownum<=?";

cmd.CommandType=CommandType.Text;

cmd.Connection=conn;

cmd.Parameters.Add("?",OleDbType.Integer).Value=5;

OleDbDataAdapteradapter=newOleDbDataAdapter(cmd);

//使用DataAdapter更新单表,可以使用CommandBuilder来自动生成InsertCommand,UpdateCommand,DeleteCommand

OleDbCommandBuildercmdbuilder=newOleDbCommandBuilder(adapter);//将自动生成InsertCommand,UpdateCommand,DeleteCommand

MessageBox.Show(cmdbuilder.GetUpdateCommand().CommandText,"updcommand");

//select

DataSetds=newDataSet();

adapter.Fill(ds,"s_userm");

dataGridView1.DataSource=ds.Tables["s_userm"].DefaultView;

//insert

DataRowupdateRow=ds.Tables["s_userm"].NewRow();

updateRow["user_no"]="TEST1";

updateRow["user_nm"]="test1";

ds.Tables["s_userm"].Rows.Add(updateRow);

adapter.Update(ds,"s_userm");

MessageBox.Show(Convert.ToString(ds.Tables["s_userm"].Rows[0]["user_no"]),"user");

//update

ds.Tables[0].Rows[1]["EMAIL"]="gymsoft@163.com";

adapter.Update(ds,"s_userm");

//delete

ds.Tables["s_userm"].Rows[0].Delete();

adapter.Update(ds,"s_userm");

}

4.使用DataAdapter与DataSet进行增删改查,手动指定增删改查的语法。

[csharp]view

plaincopy

StringconnString=ConfigurationManager.ConnectionStrings["astt"].ConnectionString;

using(OleDbConnectionconn=newOleDbConnection(connString))

{

DataSetds=newDataSet();

OleDbDataAdapteradapter=newOleDbDataAdapter();

//指定DataAdapter的select语句

OleDbCommandselectCmd=newOleDbCommand();

selectCmd.CommandText="select*froms_usermwhererownum<=?";

selectCmd.CommandType=CommandType.Text;

selectCmd.Connection=conn;

selectCmd.Parameters.Add("?",OleDbType.Integer).Value=5;

adapter.SelectCommand=selectCmd;

//指定DataAdapter的Insert语句

OleDbCommandinsertCmd=newOleDbCommand();

insertCmd.CommandText="insertintos_userm(user_no,user_nm)values(?,?)";

insertCmd.CommandType=CommandType.Text;

insertCmd.Connection=conn;

insertCmd.Parameters.Add("?",OleDbType.VarChar,30,"user_no");

insertCmd.Parameters.Add("?",OleDbType.VarChar,80,"user_nm");

adapter.InsertCommand=insertCmd;

//指定DataAdapter的Update语句

OleDbCommandupdateCmd=newOleDbCommand();

updateCmd.CommandText="updates_usermsetemail=?whereuser_no=?";

updateCmd.CommandType=CommandType.Text;

updateCmd.Connection=conn;

updateCmd.Parameters.Add("?",OleDbType.VarChar,50,"email");

OleDbParameterparmUpdPk=updateCmd.Parameters.Add("?",OleDbType.VarChar,30,"user_no");

parmUpdPk.SourceVersion=DataRowVersion.Original;

adapter.UpdateCommand=updateCmd;

//指定DataAdapter的Delete语句

OleDbCommanddeleteCmd=newOleDbCommand();

deleteCmd.CommandText="deletefroms_usermwhereuser_no=?";

deleteCmd.CommandType=CommandType.Text;

deleteCmd.Connection=conn;

OleDbParameterparmDelPk=deleteCmd.Parameters.Add("?",OleDbType.VarChar,30,"user_no");

parmDelPk.SourceVersion=DataRowVersion.Original;

adapter.DeleteCommand=deleteCmd;

MessageBox.Show(adapter.SelectCommand.CommandText,"command");

//select

adapter.Fill(ds,"s_userm");

dataGridView1.DataSource=ds.Tables["s_userm"].DefaultView;

//insert

DataRowupdateRow=ds.Tables["s_userm"].NewRow();

updateRow["user_no"]="TEST2";

updateRow["user_nm"]="test2";

ds.Tables["s_userm"].Rows.Add(updateRow);

adapter.Update(ds,"s_userm");

MessageBox.Show(Convert.ToString(ds.Tables["s_userm"].Rows[3]["user_no"]),"user");

//update

ds.Tables[0].Rows[3]["EMAIL"]="gymsoft@163.com";

adapter.Update(ds,"s_userm");

//delete

ds.Tables["s_userm"].Rows[3].Delete();

adapter.Update(ds,"s_userm");

}

5.使用DataGridView绑定数据源进行编辑,使用DataAdapter与DataSet进行增删改查,手动指定增删改查的语法。

[csharp]view

plaincopy

publicpartialclassForm1:Form

{

StringconnString;

OleDbConnectionconn;

DataSetds;

OleDbDataAdapteradapter;

publicForm1()

{

InitializeComponent();

}

privatevoidbuttonQuery_Click(objectsender,EventArgse)

{

connString=ConfigurationManager.ConnectionStrings["astt"].ConnectionString;

conn=newOleDbConnection(connString);

ds=newDataSet();

adapter=newOleDbDataAdapter();

//指定DataAdapter的select语句

OleDbCommandselectCmd=newOleDbCommand();

selectCmd.CommandText="select*froms_usermwhererownum<=?";

selectCmd.CommandType=CommandType.Text;

selectCmd.Connection=conn;

selectCmd.Parameters.Add("?",OleDbType.Integer).Value=5;

adapter.SelectCommand=selectCmd;

//指定DataAdapter的Insert语句

OleDbCommandinsertCmd=newOleDbCommand();

insertCmd.CommandText="insertintos_userm(user_no,user_nm)values(?,?)";

insertCmd.CommandType=CommandType.Text;

insertCmd.Connection=conn;

insertCmd.Parameters.Add("?",OleDbType.VarChar,30,"user_no");

insertCmd.Parameters.Add("?",OleDbType.VarChar,80,"user_nm");

adapter.InsertCommand=insertCmd;

//指定DataAdapter的Update语句

OleDbCommandupdateCmd=newOleDbCommand();

updateCmd.CommandText="updates_usermsetemail=?whereuser_no=?";

updateCmd.CommandType=CommandType.Text;

updateCmd.Connection=conn;

updateCmd.Parameters.Add("?",OleDbType.VarChar,50,"email");

OleDbParameterparmUpdPk=updateCmd.Parameters.Add("?",OleDbType.VarChar,30,"user_no");

parmUpdPk.SourceVersion=DataRowVersion.Original;

adapter.UpdateCommand=updateCmd;

//指定DataAdapter的Delete语句

OleDbCommanddeleteCmd=newOleDbCommand();

deleteCmd.CommandText="deletefroms_usermwhereuser_no=?";

deleteCmd.CommandType=CommandType.Text;

deleteCmd.Connection=conn;

OleDbParameterparmDelPk=deleteCmd.Parameters.Add("?",OleDbType.VarChar,30,"user_no");

parmDelPk.SourceVersion=DataRowVersion.Original;

adapter.DeleteCommand=deleteCmd;

//MessageBox.Show(adapter.SelectCommand.CommandText,"command");

//select

adapter.Fill(ds,"s_userm");

dataGridView1.DataSource=ds.Tables["s_userm"].DefaultView;

}

privatevoidbuttonSave_Click(objectsender,EventArgse)

{

adapter.Update(ds,"s_userm");

ds.Clear();

adapter.Fill(ds,"s_userm");

dataGridView1.DataSource=ds.Tables["s_userm"].DefaultView;

}

}

6.使用DataAdapter与DataSet,以事务的方式进行增删改查。

[csharp]view

plaincopy

StringconnString=ConfigurationManager.ConnectionStrings["astt"].ConnectionString;

using(OleDbConnectionconn=newOleDbConnection(connString))

{

DataSetds=newDataSet();

OleDbDataAdapteradapter=newOleDbDataAdapter();

//指定DataAdapter的select语句

OleDbCommandselectCmd=newOleDbCommand();

selectCmd.CommandText="select*froms_usermwhererownum<=?";

selectCmd.CommandType=CommandType.Text;

selectCmd.Connection=conn;

selectCmd.Parameters.Add("?",OleDbType.Integer).Value=5;

adapter.SelectCommand=selectCmd;

//指定DataAdapter的Insert语句

OleDbCommandinsertCmd=newOleDbCommand();

insertCmd.CommandText="insertintos_userm(user_no,user_nm)values(?,?)";

insertCmd.CommandType=CommandType.Text;

insertCmd.Connection=conn;

insertCmd.Parameters.Add("?",OleDbType.VarChar,30,"user_no");

insertCmd.Parameters.Add("?",OleDbType.VarChar,80,"user_nm");

adapter.InsertCommand=insertCmd;

//指定DataAdapter的Update语句

OleDbCommandupdateCmd=newOleDbCommand();

updateCmd.CommandText="updates_usermsetemail=?whereuser_no=?";

updateCmd.CommandType=CommandType.Text;

updateCmd.Connection=conn;

updateCmd.Parameters.Add("?",OleDbType.VarChar,50,"email");

OleDbParameterparmUpdPk=updateCmd.Parameters.Add("?",OleDbType.VarChar,30,"user_no");

parmUpdPk.SourceVersion=DataRowVersion.Original;

adapter.UpdateCommand=updateCmd;

//指定DataAdapter的Delete语句

OleDbCommanddeleteCmd=newOleDbCommand();

deleteCmd.CommandText="deletefroms_usermwhereuser_no=?";

deleteCmd.CommandType=CommandType.Text;

deleteCmd.Connection=conn;

OleDbParameterparmDelPk=deleteCmd.Parameters.Add("?",OleDbType.VarChar,30,"user_no");

parmDelPk.SourceVersion=DataRowVersion.Original;

adapter.DeleteCommand=deleteCmd;

//MessageBox.Show(adapter.SelectCommand.CommandText,"command");

conn.Open();

using(OleDbTransactiontran=conn.BeginTransaction(IsolationLevel.ReadCommitted))

{

adapter.SelectCommand.Transaction=tran;

adapter.InsertCommand.Transaction=tran;

adapter.UpdateCommand.Transaction=tran;

adapter.DeleteCommand.Transaction=tran;

try

{

//select

adapter.Fill(ds,"s_userm");

dataGridView1.DataSource=ds.Tables["s_userm"].DefaultView;

//insert

DataRowupdateRow=ds.Tables["s_userm"].NewRow();

updateRow["user_no"]="TEST2";

updateRow["user_nm"]="test2";

ds.Tables["s_userm"].Rows.Add(updateRow);

adapter.Update(ds,"s_userm");

//MessageBox.Show(Convert.ToString(ds.Tables["s_userm"].Rows[3]["user_no"]),"user");

//update

ds.Tables[0].Rows[3]["EMAIL"]="gymsoft@163.com";

adapter.Update(ds,"s_userm");

//delete

ds.Tables["s_userm"].Rows[3].Delete();

adapter.Update(ds,"s_userm");

tran.Commit();

}

catch(Exceptionex)

{

try

{

tran.Rollback();

}

catch(Exceptionexc)

{

MessageBox.Show(exc.Message,"error");

}

MessageBox.Show(ex.Message,"error");

}

}

conn.Close();

}

ado mysql 读写_C#使用Ado.Net读写数据库相关推荐

  1. c++调用mysql存储过程_C++中ADO调用MySQL存储过程失败,诡异的语法异常,求解中,附源码...

    C++中ADO调用mysql存储过程失败,诡异的语法错误,求解中,附源码 不管怎么调整,死活都出现下面的错误 C++ADO代码我实在找不到什么错误了,难道是MySQL有什么问题,或者有其他需要注意的地 ...

  2. ado.net连接mysql 类_C# ADO.NET 连接数据库常用到的类及基本操作格式

    一.ADO.NET是什么,有什么用 数据库访问技术 ado.net可让开发人员以一致的方式存取资料来源, 资料共用的消费者应用程序可使用ado.net 来连接至这些资料来源,并且撷取.处理及更新其中所 ...

  3. mfc ado 链接mysql 数据_MFC用ado方法和数据库连接后,怎么取得数据?(高加分)...

    展开全部 ADO第一次亲密接触32313133353236313431303231363533e78988e69d8331333332393939 -- ADO开发实践之一 一.ADO简介 ADO(A ...

  4. [转] MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践

    转载自: http://heylinux.com/archives/1004.html Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过.但在实际的生产环境中, ...

  5. docker部署django项目、mysql主从搭建、django实现读写分离

    目录 docker部署django项目 1.1 基于python基础镜像 将本地django项目打包并发到远程服务器上 将服务器上的.zip django项目解压 部署的具体流程 1.2 基于dock ...

  6. MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践

    ..-------------------------------------master-------------------------------- mysql> GRANT REPLIC ...

  7. Mysql一主多从和读写分离配置简记

    Mysql一主多从和读写分离配置简记 标签: mysql数据库服务器class数据库servermanager 2012-05-30 16:44 14981人阅读 评论(1) 收藏 举报  分类: 数 ...

  8. MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 转载

    http://heylinux.com/archives/1004.html MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 Mysql作为目前世界上使用最广泛 ...

  9. mysql driver 读写分离_Mysql主从复制和读写分离实践

    1.主从复制 原理 MySQL之间数据复制的基础是二进制日志文件(binary log file).一台MySQL数据库一旦启用二 进制日志后,其作为master,它的数据库中所有操作都会以" ...

最新文章

  1. 一九四六年首台电子计算机,2012年计算机一级MsOffice第四十九套练习题及答案解析...
  2. SQL注入漏洞的检测与防范技术
  3. python扫描内网banner信息
  4. 模板方法模式coding
  5. datatable 创建列赋值_DataTable创建行和列,DataReader读取
  6. 图像分割过分割和欠分割_使用图割的图像分割
  7. 【mmdetection2.0错误】——ModuleNotFoundError: No module named ‘mmdet‘
  8. 论文审稿人可以下岗了?CMU都做出论文审稿机器人了!
  9. ios 发送请求时按home_iPhone 是否能够升级至指定的 iOS 系统版本?
  10. P1425 小鱼的游泳时间【入门题】
  11. Linux 配置LNMP服务器 并配置虚拟主机
  12. 大型项目开发: 隔离 (《大规模C++程序设计》书摘)
  13. GAMBIT、ICEM、HYPERMESH耦合面的处理方法
  14. Java代码实现“爱心”表白
  15. linux ad7705驱动程序,tm7705_51单机片驱动
  16. 解决Win11快捷键反应慢有延迟
  17. 三、漏洞编号为CVE-2017-7494的复现(永恒之蓝)(Linux)(Ubuntu16.04.4)
  18. Mac系统开发常见问题-Mac登录界面多了一个其他账户选项
  19. 月份和星期的英语(请不要再弄错了)
  20. 目前计算机的发展处于第五代,计算机应用基础.pptx

热门文章

  1. 6.边缘检测:梯度——回顾、简化的图像、边缘概念_1
  2. iic总线从机仲裁_IIC协议底层原理超详细解析!示波器,逻辑分析仪多图预警
  3. 【英语学习】【Level 08】U01 Let's Read L1 All the world's a stage
  4. 计算机网络(16)-计算机网络应用示例
  5. 微服务开发过程中需要注意的若干事项
  6. python是面向什么的计算机程序设计语言_Python是一种计算机程序设计语言,python到底该怎么学习...
  7. 基于微型计算机系统的实时时钟设计,基于51单片机的实时时钟设计报告.doc
  8. 如何提高Unity Gear VR游戏性能
  9. OpenGL ES Emulator再次横向比较
  10. mysql自带压测工具--mysqlslap