什么是ado.net以及其简单实现详解
一、介绍
ado.net是.net framework的数据提供程序,它主要有SqlConnection、SqlCommand、SqlDataAdapter、SqlDataReader和DataSet五大对象构成,结构如下图
1.SqlConnection类表示一个sql server数据库的一个连接
连接字符串格式一般有如下两种形式,具体参数可以参照msdn
1)Persist Security Info=False;Integrated Security=true;Initial Catalog=Northwind;server=(local)
2)Server=.;Database=demodb;User=sa;Password=123;
创建一个连接如下
SqlConnection conn = new SqlConnection(connString);
2.SqlCommand类表示数据库执行命令对象
1)用来设置需要执行的sql脚本或存储过程、超时时间、参数和事务等。
2)创建方式如下
SqlConnection conn = new SqlConnection();
//方式一
conn.CreateCommand();
//方式二
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select * from table" ;
cmd.Connection = conn;
3)几个主要方法
ExecuteNonQuery:对连接执行sql语句并返回受影响行数,主要执行增、删和改操作
ExecuteReader:执行查询返回SqlDataReader对象
ExecuteScalar:执行查询返回结果集中的第一行和第一列
3.SqlDataAdapter类用来填充DataSet和更新数据库数据命令和数据库连接
该类有4种构造函数如下
public SqlDataAdapter();
public SqlDataAdapter(SqlCommand selectCommand);
public SqlDataAdapter(string selectCommandText, SqlConnection selectConnection);
public SqlDataAdapter(string selectCommandText, string selectConnectionString);
4.SqlDataReader类提供一种数据流只进方式读取
5.DataSet类表示数据在内存中的缓存
二、ADO.NET简单实现
下面实现一个增、删、改、查的例子
public class EasySqlHelper { //web.config来配置 //private static string connString = ConfigurationManager.AppSettings["SqlConnectionString"]; private static string connString = "Server=.;Database=demodb;User=sa;Password=123;"; public static int ExecuteNonQuery(string sql) { using (SqlConnection conn = new SqlConnection(connString)) { using (SqlCommand cmd = new SqlCommand(sql, conn)) { if (conn.State != ConnectionState.Open) { conn.Open(); } return cmd.ExecuteNonQuery(); } } } public static SqlDataReader ExecuteReader(string sql) { SqlConnection conn = new SqlConnection(connString); SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader rdr = null; try { if (conn.State != ConnectionState.Open) { conn.Open(); } rdr = cmd.ExecuteReader(); } catch (SqlException ex) { conn.Dispose(); cmd.Dispose(); if (rdr != null) { rdr.Dispose(); } throw ex; } finally { cmd.Dispose(); } return rdr; } public static DataTable ExecuteDataTable(string sql) { using (SqlConnection conn = new SqlConnection(connString)) { using (SqlCommand cmd = new SqlCommand(sql, conn)) { if (conn.State != ConnectionState.Open) { conn.Open(); } SqlDataAdapter adp = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); adp.Fill(ds); return ds.Tables[0]; } } } }
上面代码中使用using来确保资源释放,所有实现IDisposable接口的类都可以用using来释放,即使在调用对象的方法上发生异常也会释放。
三、创建不同提供程序的数据源类实例
上面代码只对sql server有效,如果要实现不同数据库如oracle则又需要另外写一套代码,.Net提供了DbProviderFactory类来创建不同数据库实例。
同时上面5大对象也要换成DbConnection、DbCommand、DbDataReader、DbDataAdapter把具体sql server对象抽象成更具体和数据库类型无关对象。
//// <summary> /// 连接信息 /// </summary> public class ConnectionInfo { private string _connectionString; private string _providerName; /// <summary> /// 连接字符串 /// </summary> public string ConnectionString { get { return _connectionString; } } /// <summary> /// 提供程序的固定名称 /// </summary> public string ProviderName { get { return _providerName; } } public ConnectionInfo(string connectionString, string providerName) { _connectionString = connectionString; _providerName = providerName; } } public class MySqlHelper { private static DbProviderFactory dbProvider; private static readonly ConnectionInfo connInfo = new ConnectionInfo("Server=.;Database=demodb;User=sa;Password=123;", "System.Data.SqlClient"); private static void GetProvider() { dbProvider = DbProviderFactories.GetFactory(connInfo.ProviderName); } static MySqlHelper() { GetProvider(); } public static int ExecuteNonQuery(string sql, DbParameter[] parameters) { int flag = 0; using (DbConnection conn = dbProvider.CreateConnection()) { conn.ConnectionString = connInfo.ConnectionString; conn.Open(); using (DbCommand cmd = conn.CreateCommand()) { cmd.CommandText = sql; if (parameters != null && parameters.Length > 0) { cmd.Parameters.AddRange(parameters); } flag = cmd.ExecuteNonQuery(); } } return flag; } public static void ExecuteReader(string sql, DbParameter[] parameters, Action<IDataReader> action) { IDataReader rdr = null; using (DbConnection conn = dbProvider.CreateConnection()) { conn.ConnectionString = connInfo.ConnectionString; conn.Open(); using (DbCommand cmd = conn.CreateCommand()) { cmd.CommandText = sql; if (parameters != null && parameters.Length > 0) { cmd.Parameters.AddRange(parameters); } rdr = cmd.ExecuteReader(); action(rdr); rdr.Close(); } } } public static DataTable ExecuteDataTable(string sql, DbParameter[] parameters) { DataTable dt = null; using (DbConnection conn = dbProvider.CreateConnection()) { conn.ConnectionString = connInfo.ConnectionString; conn.Open(); using (DbCommand cmd = conn.CreateCommand()) { cmd.CommandText = sql; if (parameters != null && parameters.Length > 0) { cmd.Parameters.AddRange(parameters); } IDataReader rdr = cmd.ExecuteReader(); dt = new DataTable(); dt.Load(rdr); rdr.Close(); } return dt; } } }
四、其它第三方框架
有Dapper、IBatis.Net等等,可以参考学习下
【相关推荐】
2. C#使用Ado.Net更新和添加数据到Excel表格的方法
Atas ialah kandungan terperinci 什么是ado.net以及其简单实现详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Cara menulis sistem soal selidik dalam talian yang mudah melalui PHP Dengan perkembangan dan popularisasi Internet, semakin ramai orang mula cenderung untuk menjalankan pelbagai tinjauan dan soal selidik melalui Internet. Bagi memenuhi permintaan ini, kami boleh menulis sistem soal selidik dalam talian yang mudah melalui bahasa PHP. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan sistem soal selidik asas dan menyediakan contoh kod khusus. Reka bentuk pangkalan data Pertama, kita perlu mereka bentuk pangkalan data untuk menyimpan data berkaitan soal selidik. Kita boleh menggunakan data MySQL

Cara menggunakan PHP untuk melaksanakan sistem pesanan dalam talian yang mudah Dengan populariti Internet, industri pesanan secara beransur-ansur berkembang dalam talian. Bagi memenuhi keperluan pengguna, pembangunan sistem pesanan dalam talian telah menjadi sangat penting. Artikel ini akan memperkenalkan cara menggunakan bahasa PHP untuk melaksanakan sistem pesanan dalam talian yang mudah dan memberikan contoh kod khusus. Tentukan struktur pangkalan data Pertama, kita perlu mentakrifkan struktur pangkalan data untuk menyimpan maklumat pesanan. Buat jadual data bernama "pesanan" dan tentukan medan berikut: order_id: order ID

Cara menggunakan PHP untuk membangunkan fungsi semakan produk yang mudah Dengan kebangkitan e-dagang, fungsi semakan produk telah menjadi fungsi yang sangat diperlukan untuk memudahkan komunikasi antara pengguna dan penilaian pengguna terhadap produk. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan fungsi semakan produk yang mudah, dan melampirkan contoh kod tertentu. Buat pangkalan data Pertama, kita perlu mencipta pangkalan data untuk menyimpan maklumat semakan produk. Buat pangkalan data yang dipanggil "product_comments" dan di dalamnya fail yang dipanggil "comment

Hari ini, kami akan melaksanakan sistem pesanan dalam talian yang mudah menggunakan bahasa pengaturcaraan PHP. PHP ialah bahasa skrip sebelah pelayan yang popular yang sesuai untuk membangunkan aplikasi berasaskan web. Kami akan menunjukkan kepada anda cara menggunakan PHP untuk mencipta sistem pesanan ringkas di mana pengguna boleh memilih item di tapak web, menambahkannya pada troli beli-belah mereka dan menyelesaikan transaksi. Sebelum memulakan, kita perlu mencipta projek PHP baharu dan memasang kebergantungan yang diperlukan seperti pangkalan data dan persekitaran pelayan. Kami akan menggunakan MySQ

Cara menggunakan PHP untuk melaksanakan pusat beli-belah dalam talian yang mudah Dengan perkembangan Internet, e-dagang telah menjadi cara membeli-belah yang biasa. Ramai orang ingin belajar cara membina kedai dalam talian mereka sendiri. Artikel ini akan memperkenalkan cara menggunakan bahasa PHP untuk melaksanakan pusat beli-belah dalam talian yang mudah dan memberikan contoh kod khusus. 1. Sediakan persekitaran Pertama, kita perlu menyediakan persekitaran pembangunan PHP secara tempatan. Adalah disyorkan untuk menggunakan alat XAMPP atau WAMP untuk membina persekitaran pembangunan bersepadu, yang boleh mengelakkan kerja konfigurasi yang membosankan. 2. Buat sambungan pangkalan data

Cara menggunakan PHP untuk membangunkan fungsi perbandingan produk yang mudah memerlukan contoh kod khusus Dengan perkembangan e-dagang, pengguna sering menghadapi kesukaran dalam memilih produk semasa membeli-belah, seperti tidak mengetahui jenama produk mana yang lebih baik dan kedai mana yang mempunyai. harga terbaik Lebih mampu milik dll. Untuk menyelesaikan masalah ini, kami boleh membangunkan fungsi perbandingan produk mudah untuk membantu pengguna membandingkan sifat produk dan membuat pilihan dengan mudah. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan fungsi ini dan memberikan contoh kod khusus. Pertama, kita perlu mencipta produk

Cara menggunakan PHP untuk melaksanakan sistem pengambilan bakat dalam talian yang mudah Pengambilan bakat adalah pautan penting dalam pembangunan perusahaan Dengan perkembangan Internet, semakin banyak syarikat telah mula menggunakan sistem pengambilan bakat dalam talian untuk memudahkan proses pengambilan dan meningkatkan kecekapan. Dalam artikel ini, kami akan memperkenalkan cara menggunakan bahasa PHP untuk melaksanakan sistem pengambilan bakat dalam talian yang mudah dan menyediakan contoh kod khusus. 1. Analisis keperluan Sebelum melaksanakan sistem pengambilan bakat dalam talian, adalah perlu untuk menjelaskan keperluan sistem terlebih dahulu. Sistem pengambilan bakat yang mudah biasanya merangkumi fungsi berikut:

Bagaimana untuk mereka bentuk sistem pengurusan kurikulum yang mudah di Jawa? Dengan perkembangan pendidikan dan kepelbagaian kursus, sekolah dan institusi pendidikan memerlukan sistem pengurusan kursus yang cekap untuk mengendalikan penyusunan dan penyesuaian kursus harian. Sebagai bahasa pengaturcaraan yang digunakan secara meluas, Java membekalkan kami pelbagai alatan dan perpustakaan untuk mereka bentuk dan membangunkan sistem pengurusan jadual kursus yang mudah dan praktikal. Sebelum mereka bentuk sistem pengurusan kurikulum, kita perlu menjelaskan keperluan fungsi sistem tersebut. Secara umumnya, sistem pengurusan kurikulum perlu melaksanakan fungsi berikut: Mengurus kursus
