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;연결 문자열 형식은 일반적으로 다음 두 가지 형식을 갖습니다. 매개변수는 msdn을 참조할 수 있습니다.
创建一个连接如下
SqlConnection
conn =다음과 같이 연결을 생성하세요 new
connString); 2.SqlCommand类表示数据库执行命令对象 SqlConnectionnew
SqlCommand cmd =
new SqlCommand (); 1) 실행해야 하는 SQL 스크립트나 저장 프로시저, 타임아웃, 매개변수, 트랜잭션 등을 설정하는 데 사용합니다.
cmd.CommandText = "select * from table" ; 2) 생성 방법은 다음과 같습니다.
cmd.Connection = conn; 3)几个主要方法 ExecuteNonQuery:对连接执行sql语句并返回受影响行数,主要执行增、删和改操作 🎜 🎜🎜🎜 🎜 🎜🎜 🎜🎜🎜🎜🎜🎜🎜
🎜🎜
🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜 conn.CreateCommand🎜🎜🎜
🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜
🎜🎜🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜
🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜 cmd.CommandText =🎜🎜🎜🎜
🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜 cmd.Connection = conn🎜
🎜 🎜 🎜 🎜 🎜 3 ) 여러 가지 주요 메서드
🎜 🎜 🎜 🎜 🎜🎜🎜ExecuteNonQuery: 연결에서 SQL 문을 실행하고 영향을 받은 행 수를 반환하며 주로 추가, 삭제 및 작업 수정ExecuteReader:执行查询返回SqlDataReader对象
ExecuteScalar:执行查询返回结果集中的第一行和第一列
3.SqlDataAdapter类用来填充DataSet和更新数据库数据命令和数据库连接
该类有4种构造函数如下 이 클래스에는 다음과 같은 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; } } }
四、其它第三方框架동시에 위의 5개 주요 개체도 DbConnection, DbCommand, DbDataReader 및 DbDataAdapter로 대체되어 특정 SQL Server 개체를 더 많은 개체로 추상화해야 합니다. 데이터베이스 유형과 관련이 없는 특정 개체입니다.
【相关推荐】
1.
ASP.NET免费视频教程
p>1.2. C#使用Ado.Net更新和添加数据到Excel表格的方法
2 .3. ADO.NET 读取EXCEL的实现代码((c#))
3.4. ADO.NET调用存储过程
4.5. ado.net 连接vs 数据库代码
5.🎜🎜
위 내용은 ado.net이란 무엇이며 간단한 구현 세부 사항의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











PHP를 이용한 간단한 온라인 설문지 시스템 작성법 인터넷의 발전과 대중화로 인해 인터넷을 통해 다양한 설문조사와 설문지를 진행하는 경향이 늘어나고 있습니다. 이러한 요구를 충족시키기 위해 우리는 PHP 언어를 통해 간단한 온라인 설문지 시스템을 작성할 수 있습니다. 이 기사에서는 PHP를 사용하여 기본 설문지 시스템을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 데이터베이스 설계 먼저 설문지 관련 데이터를 저장할 데이터베이스를 설계해야 한다. MySQL 데이터를 사용할 수 있습니다

PHP를 사용하여 간단한 온라인 주문 시스템을 구현하는 방법 인터넷의 인기로 인해 주문 산업은 점차 온라인으로 발전하고 있습니다. 사용자의 요구를 충족시키기 위해서는 온라인 주문 시스템의 개발이 매우 중요해졌습니다. 이 기사에서는 PHP 언어를 사용하여 간단한 온라인 주문 시스템을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 데이터베이스 구조 정의 먼저 주문 정보를 저장할 데이터베이스 구조를 정의해야 합니다. "orders"라는 데이터 테이블을 생성하고 다음 필드를 정의합니다. order_id: 주문 ID

PHP를 사용하여 간단한 제품 리뷰 기능을 개발하는 방법 전자 상거래가 증가하면서 제품 리뷰 기능은 사용자와 소비자의 제품 평가 간의 의사소통을 촉진하는 데 필수적인 기능이 되었습니다. 이 기사에서는 PHP를 사용하여 간단한 제품 리뷰 기능을 개발하는 방법을 소개하고 구체적인 코드 예제를 첨부합니다. 데이터베이스 생성 먼저, 제품 리뷰 정보를 저장할 데이터베이스를 생성해야 합니다. "product_comments"라는 데이터베이스를 만들고 그 안에 "comment"라는 파일을 만듭니다.

오늘은 PHP 프로그래밍 언어를 사용하여 간단한 온라인 주문 시스템을 구현해 보겠습니다. PHP는 웹 기반 애플리케이션 개발에 이상적인 널리 사용되는 서버 측 스크립팅 언어입니다. PHP를 사용하여 사용자가 웹사이트에서 항목을 선택하고 장바구니에 추가하고 거래를 완료할 수 있는 간단한 주문 시스템을 만드는 방법을 보여 드리겠습니다. 시작하기 전에 새로운 PHP 프로젝트를 생성하고 데이터베이스, 서버 환경 등 필요한 종속성을 설치해야 합니다. 우리는 MySQ를 사용할 것이다

PHP를 사용하여 간단한 온라인 쇼핑몰을 구현하는 방법 인터넷의 발달로 전자상거래가 일반적인 쇼핑 방식이 되었습니다. 많은 사람들이 자신만의 온라인 상점을 구축하는 방법을 배우고 싶어합니다. 이 기사에서는 PHP 언어를 사용하여 간단한 온라인 쇼핑몰을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. 환경 설정 먼저 로컬에서 PHP 개발 환경을 설정해야 합니다. 지루한 구성 작업을 피할 수 있는 통합 개발 환경을 구축하려면 XAMPP 또는 WAMP 도구를 사용하는 것이 좋습니다. 2. 데이터베이스 연결 생성

PHP를 사용하여 간단한 상품 비교 기능을 개발하려면 특정 코드 예제가 필요합니다. 전자 상거래가 발달함에 따라 사용자는 어떤 브랜드를 선택하는 것이 더 좋은지, 어떤 매장이 좋은지 알 수 없는 등 쇼핑 시 제품을 선택하는 데 어려움을 겪는 경우가 많습니다. 가장 저렴한 가격 등. 이러한 문제를 해결하기 위해 우리는 사용자가 쉽게 제품의 속성을 비교하고 선택할 수 있도록 돕는 간단한 제품 비교 기능을 개발할 수 있습니다. 이 기사에서는 PHP를 사용하여 이 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 먼저 제품을 만들어야 합니다.

PHP를 사용하여 간단한 온라인 인재 채용 시스템을 구현하는 방법 인재 채용은 기업 개발의 중요한 부분입니다. 인터넷의 발전과 함께 점점 더 많은 회사가 채용 프로세스를 단순화하고 효율성을 높이기 위해 온라인 인재 채용 시스템을 채택하기 시작했습니다. 이 기사에서는 PHP 언어를 사용하여 간단한 온라인 인재 채용 시스템을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. 요구사항 분석 온라인 인재채용 시스템을 구현하기 전에 먼저 시스템 요구사항을 명확히 할 필요가 있다. 간단한 인재 채용 시스템에는 일반적으로 다음과 같은 기능이 포함됩니다.

Java로 간단한 강좌 일정 관리 시스템을 설계하는 방법은 무엇입니까? 교육이 발전하고 강좌가 다양해짐에 따라 학교와 교육기관에서는 일일 강좌 편성과 조정을 처리하기 위한 효율적인 강좌 관리 시스템이 필요합니다. 널리 사용되는 프로그래밍 언어인 Java는 간단하고 실용적인 과정 일정 관리 시스템을 설계하고 개발할 수 있는 풍부한 도구와 라이브러리를 제공합니다. 커리큘럼 관리 시스템을 설계하기 전에 시스템의 기능적 요구 사항을 명확히 해야 합니다. 일반적으로 커리큘럼 관리 시스템은 다음 기능을 구현해야 합니다. 코스 관리
