ado mysql 读写_C#使用Ado.Net读写数据库
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读写数据库相关推荐
- c++调用mysql存储过程_C++中ADO调用MySQL存储过程失败,诡异的语法异常,求解中,附源码...
C++中ADO调用mysql存储过程失败,诡异的语法错误,求解中,附源码 不管怎么调整,死活都出现下面的错误 C++ADO代码我实在找不到什么错误了,难道是MySQL有什么问题,或者有其他需要注意的地 ...
- ado.net连接mysql 类_C# ADO.NET 连接数据库常用到的类及基本操作格式
一.ADO.NET是什么,有什么用 数据库访问技术 ado.net可让开发人员以一致的方式存取资料来源, 资料共用的消费者应用程序可使用ado.net 来连接至这些资料来源,并且撷取.处理及更新其中所 ...
- mfc ado 链接mysql 数据_MFC用ado方法和数据库连接后,怎么取得数据?(高加分)...
展开全部 ADO第一次亲密接触32313133353236313431303231363533e78988e69d8331333332393939 -- ADO开发实践之一 一.ADO简介 ADO(A ...
- [转] MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
转载自: http://heylinux.com/archives/1004.html Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过.但在实际的生产环境中, ...
- docker部署django项目、mysql主从搭建、django实现读写分离
目录 docker部署django项目 1.1 基于python基础镜像 将本地django项目打包并发到远程服务器上 将服务器上的.zip django项目解压 部署的具体流程 1.2 基于dock ...
- MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践
..-------------------------------------master-------------------------------- mysql> GRANT REPLIC ...
- Mysql一主多从和读写分离配置简记
Mysql一主多从和读写分离配置简记 标签: mysql数据库服务器class数据库servermanager 2012-05-30 16:44 14981人阅读 评论(1) 收藏 举报 分类: 数 ...
- MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 转载
http://heylinux.com/archives/1004.html MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践 Mysql作为目前世界上使用最广泛 ...
- mysql driver 读写分离_Mysql主从复制和读写分离实践
1.主从复制 原理 MySQL之间数据复制的基础是二进制日志文件(binary log file).一台MySQL数据库一旦启用二 进制日志后,其作为master,它的数据库中所有操作都会以" ...
最新文章
- 一九四六年首台电子计算机,2012年计算机一级MsOffice第四十九套练习题及答案解析...
- SQL注入漏洞的检测与防范技术
- python扫描内网banner信息
- 模板方法模式coding
- datatable 创建列赋值_DataTable创建行和列,DataReader读取
- 图像分割过分割和欠分割_使用图割的图像分割
- 【mmdetection2.0错误】——ModuleNotFoundError: No module named ‘mmdet‘
- 论文审稿人可以下岗了?CMU都做出论文审稿机器人了!
- ios 发送请求时按home_iPhone 是否能够升级至指定的 iOS 系统版本?
- P1425 小鱼的游泳时间【入门题】
- Linux 配置LNMP服务器 并配置虚拟主机
- 大型项目开发: 隔离 (《大规模C++程序设计》书摘)
- GAMBIT、ICEM、HYPERMESH耦合面的处理方法
- Java代码实现“爱心”表白
- linux ad7705驱动程序,tm7705_51单机片驱动
- 解决Win11快捷键反应慢有延迟
- 三、漏洞编号为CVE-2017-7494的复现(永恒之蓝)(Linux)(Ubuntu16.04.4)
- Mac系统开发常见问题-Mac登录界面多了一个其他账户选项
- 月份和星期的英语(请不要再弄错了)
- 目前计算机的发展处于第五代,计算机应用基础.pptx
热门文章
- 6.边缘检测:梯度——回顾、简化的图像、边缘概念_1
- iic总线从机仲裁_IIC协议底层原理超详细解析!示波器,逻辑分析仪多图预警
- 【英语学习】【Level 08】U01 Let's Read L1 All the world's a stage
- 计算机网络(16)-计算机网络应用示例
- 微服务开发过程中需要注意的若干事项
- python是面向什么的计算机程序设计语言_Python是一种计算机程序设计语言,python到底该怎么学习...
- 基于微型计算机系统的实时时钟设计,基于51单片机的实时时钟设计报告.doc
- 如何提高Unity Gear VR游戏性能
- OpenGL ES Emulator再次横向比较
- mysql自带压测工具--mysqlslap