SqlHelper
数据库操作的时候,模式很固定。于是把这些操作都封装起来。 达到提供sql语句或参数,得到结果的目的。 我们把这个类库叫SqlHelper SqlHelper using System; using System.Configuration; using System.Data; using System.Data.SqlClient;namespace YZLibra
数据库操作的时候,模式很固定。于是把这些操作都封装起来。
达到提供sql语句或参数,得到结果的目的。
我们把这个类库叫SqlHelper
SqlHelper
<code class=" hljs cs"><span class="hljs-keyword">using</span> System; <span class="hljs-keyword">using</span> System.Configuration; <span class="hljs-keyword">using</span> System.Data; <span class="hljs-keyword">using</span> System.Data.SqlClient; namespace YZLibrary { class SqlHelper { <span class="hljs-keyword">private</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">readonly</span> <span class="hljs-keyword">string</span> connStr = ConfigurationManager.ConnectionStrings[<span class="hljs-string">"sql"</span>].ConnectionString; <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> <span class="hljs-xmlDocTag"><summary></span></span> <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> 执行非查询语句并返回受影响行数</span> <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> <span class="hljs-xmlDocTag"></summary></span></span> <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> <span class="hljs-xmlDocTag"><param name="sql"></span><span class="hljs-xmlDocTag"></param></span></span> <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> <span class="hljs-xmlDocTag"><param name="pms"></span><span class="hljs-xmlDocTag"></param></span></span> <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> <span class="hljs-xmlDocTag"><returns></span><span class="hljs-xmlDocTag"></returns></span></span> <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">int</span> <span class="hljs-title">ExecuteNonQuery</span>(<span class="hljs-keyword">string</span> sql, <span class="hljs-keyword">params</span> SqlParameter[] pms) { <span class="hljs-keyword">using</span> (SqlConnection conn = <span class="hljs-keyword">new</span> SqlConnection(connStr)) { <span class="hljs-keyword">using</span> (SqlCommand cmd = <span class="hljs-keyword">new</span> SqlCommand(sql, conn)) { cmd.Parameters.AddRange(pms); conn.Open(); <span class="hljs-keyword">return</span> cmd.ExecuteNonQuery(); } } } <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> <span class="hljs-xmlDocTag"><summary></span></span> <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> 执行查询,并返回查询的结果集中的第一行第一列</span> <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> <span class="hljs-xmlDocTag"></summary></span></span> <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> <span class="hljs-xmlDocTag"><param name="sql"></span><span class="hljs-xmlDocTag"></param></span></span> <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> <span class="hljs-xmlDocTag"><param name="pms"></span><span class="hljs-xmlDocTag"></param></span></span> <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> <span class="hljs-xmlDocTag"><returns></span><span class="hljs-xmlDocTag"></returns></span></span> <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">object</span> <span class="hljs-title">ExecuteScalar</span>(<span class="hljs-keyword">string</span> sql, <span class="hljs-keyword">params</span> SqlParameter[] pms) { <span class="hljs-keyword">using</span> (SqlConnection conn = <span class="hljs-keyword">new</span> SqlConnection(connStr)) { <span class="hljs-keyword">using</span> (SqlCommand cmd = <span class="hljs-keyword">new</span> SqlCommand(sql, conn)) { cmd.Parameters.AddRange(pms); conn.Open(); <span class="hljs-keyword">return</span> cmd.ExecuteScalar(); } } } <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> <span class="hljs-xmlDocTag"><summary></span></span> <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> 执行查询,并返回SqlDataReader。</span> <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> <span class="hljs-xmlDocTag"></summary></span></span> <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> <span class="hljs-xmlDocTag"><param name="sql"></span><span class="hljs-xmlDocTag"></param></span></span> <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> <span class="hljs-xmlDocTag"><param name="pms"></span><span class="hljs-xmlDocTag"></param></span></span> <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> <span class="hljs-xmlDocTag"><returns></span><span class="hljs-xmlDocTag"></returns></span></span> <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> SqlDataReader <span class="hljs-title">ExecuteReader</span>(<span class="hljs-keyword">string</span> sql, <span class="hljs-keyword">params</span> SqlParameter[] pms) { SqlConnection conn = <span class="hljs-keyword">new</span> SqlConnection(connStr); <span class="hljs-keyword">try</span> { <span class="hljs-keyword">using</span> (SqlCommand cmd = <span class="hljs-keyword">new</span> SqlCommand(sql, conn)) { cmd.Parameters.AddRange(pms); conn.Open(); <span class="hljs-keyword">return</span> cmd.ExecuteReader(CommandBehavior.CloseConnection); } } <span class="hljs-keyword">catch</span> (Exception ex) { conn.Dispose(); <span class="hljs-keyword">throw</span> ex; } } <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> <span class="hljs-xmlDocTag"><summary></span></span> <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> 执行查询,返回DataTable</span> <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> <span class="hljs-xmlDocTag"></summary></span></span> <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> <span class="hljs-xmlDocTag"><param name="sql"></span><span class="hljs-xmlDocTag"></param></span></span> <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> <span class="hljs-xmlDocTag"><param name="pms"></span><span class="hljs-xmlDocTag"></param></span></span> <span class="hljs-comment"><span class="hljs-xmlDocTag">///</span> <span class="hljs-xmlDocTag"><returns></span><span class="hljs-xmlDocTag"></returns></span></span> <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> DataTable <span class="hljs-title">ExecuteDataTable</span>(<span class="hljs-keyword">string</span> sql,<span class="hljs-keyword">params</span> SqlParameter[] pms) { DataTable dt = <span class="hljs-keyword">new</span> DataTable(); <span class="hljs-keyword">using</span> (SqlDataAdapter adapter = <span class="hljs-keyword">new</span> SqlDataAdapter(sql, connStr)) { adapter.SelectCommand.Parameters.AddRange(pms); adapter.Fill(dt); } <span class="hljs-keyword">return</span> dt; } } }</code>
ExecuteReader
ExecuteScalar只执行一次,执行完后就可以把连接断开,但ExecuteReader要从数据库取好几次,所以连接要一直开着,直到数据取完了。
那怎么关掉连接,开始是想从外边关,但从外边关根本无法访问到函数里边的conn对象,没法儿关。
于是就用到了CommandBehavior.CloseConnection,在执行该命令时,如果关闭关联的 DataReader 对象,则关联的 Connection 对象也将关闭。
使用SQLHelper
<code class=" hljs cpp"> <span class="hljs-comment">//ExecuteNonQuery 无参的</span> <span class="hljs-built_in">string</span> sql = <span class="hljs-string">"update LoginTest set pwd=1234 where uid='小明';"</span>; <span class="hljs-keyword">int</span> res = SqlHelper.ExecuteNonQuery(sql); Console.WriteLine(res); Console.ReadKey(); <span class="hljs-comment">//ExecuteNonQuery 有参的</span> <span class="hljs-built_in">string</span> sql = <span class="hljs-string">"update LoginTest set pwd=@pwd where uid=@uid;"</span>; SqlParameter[] ps = { <span class="hljs-keyword">new</span> SqlParameter(<span class="hljs-string">"@pwd"</span>,<span class="hljs-number">1</span>),<span class="hljs-comment">//如果第二个参数为0,要用(object)强转,否则会默认为第二个构造函数。第二个构造函数,是枚举型,和第一个构造函数冲突</span> <span class="hljs-keyword">new</span> SqlParameter(<span class="hljs-string">"@uid"</span>,<span class="hljs-string">"小明"</span>), }; <span class="hljs-keyword">int</span> res = SqlHelper.ExecuteNonQuery(sql, ps); Console.WriteLine(res); Console.ReadKey(); <span class="hljs-comment">//ExecuteScalar 参数化模糊查询</span> <span class="hljs-built_in">string</span> sql = <span class="hljs-string">"select count(*) from LoginTest where uid like @uid"</span>; SqlParameter pUid = <span class="hljs-keyword">new</span> SqlParameter(<span class="hljs-string">"@uid"</span>, <span class="hljs-string">"杨%"</span>); <span class="hljs-keyword">int</span> count = (<span class="hljs-keyword">int</span>)SqlHelper.ExecuteScalar(sql, pUid); Console.WriteLine(count); Console.ReadKey(); <span class="hljs-comment">//ExecuteReader</span> <span class="hljs-keyword">using</span> (SqlDataReader reader = SqlHelper.ExecuteReader(<span class="hljs-string">"select * from LoginTest"</span>)) { <span class="hljs-keyword">while</span> (reader.Read()) { List<<span class="hljs-built_in">string</span>> <span class="hljs-built_in">list</span> = <span class="hljs-keyword">new</span> List<<span class="hljs-built_in">string</span>>(); <span class="hljs-keyword">for</span> (<span class="hljs-keyword">int</span> i = <span class="hljs-number">0</span>; i < reader.FieldCount; i++) { <span class="hljs-built_in">list</span>.Add(reader[i].ToString()); } Console.WriteLine(<span class="hljs-built_in">string</span>.Join(<span class="hljs-string">","</span>, <span class="hljs-built_in">list</span>)); } } Console.ReadKey(); <span class="hljs-comment">//DataAdapter,这个要建winform程序</span> <span class="hljs-built_in">string</span> sql = <span class="hljs-string">"select * from LoginTest"</span>; dataGridView1.DataSource = SqlHelper.ExecuteDataTable(sql);</code>
这是比较简单的SqlHelper。
还有比较完善的微软SQLHelper.cs类 中文版

핫 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)

뜨거운 주제











방해 금지 모드에서 전화를 받는 것조차 매우 짜증나는 경험이 될 수 있습니다. 이름에서 알 수 있듯이 방해 금지 모드는 모든 수신 전화 알림과 이메일, 메시지 등의 알림을 끕니다. 다음 솔루션 세트를 따라 문제를 해결할 수 있습니다. 수정 1 – 초점 모드 활성화 휴대폰에서 초점 모드를 활성화합니다. 1단계 – 위에서 아래로 스와이프하여 제어 센터에 액세스합니다. 2단계 – 다음으로 휴대폰에서 "초점 모드"를 활성화합니다. 집중 모드는 전화기에서 방해 금지 모드를 활성화합니다. 수신 전화 알림이 전화기에 표시되지는 않습니다. 수정 2 - 초점 모드 설정 변경 초점 모드 설정에 문제가 있는 경우 이를 수정해야 합니다. 1단계 – iPhone 설정 창을 엽니다. 2단계 – 다음으로 집중 모드 설정을 켭니다.

Go 언어는 효율적이고 간결하며 배우기 쉬운 프로그래밍 언어입니다. 동시 프로그래밍과 네트워크 프로그래밍의 장점 때문에 개발자들이 선호합니다. 실제 개발에서 데이터베이스 작업은 필수적인 부분입니다. 이 기사에서는 Go 언어를 사용하여 데이터베이스 추가, 삭제, 수정 및 쿼리 작업을 구현하는 방법을 소개합니다. Go 언어에서는 일반적으로 사용되는 SQL 패키지, Gorm 등과 같은 타사 라이브러리를 사용하여 데이터베이스를 운영합니다. 여기서는 sql 패키지를 예로 들어 데이터베이스의 추가, 삭제, 수정 및 쿼리 작업을 구현하는 방법을 소개합니다. MySQL 데이터베이스를 사용하고 있다고 가정합니다.

Hibernate 다형성 매핑은 상속된 클래스를 데이터베이스에 매핑할 수 있으며 다음 매핑 유형을 제공합니다. Join-subclass: 상위 클래스의 모든 열을 포함하여 하위 클래스에 대한 별도의 테이블을 생성합니다. 클래스별 테이블: 하위 클래스별 열만 포함하는 하위 클래스에 대한 별도의 테이블을 만듭니다. Union-subclass: Joined-subclass와 유사하지만 상위 클래스 테이블이 모든 하위 클래스 열을 통합합니다.

Apple의 최신 iOS18, iPadOS18 및 macOS Sequoia 시스템 릴리스에는 사진 애플리케이션에 중요한 기능이 추가되었습니다. 이 기능은 사용자가 다양한 이유로 손실되거나 손상된 사진과 비디오를 쉽게 복구할 수 있도록 설계되었습니다. 새로운 기능에는 사진 앱의 도구 섹션에 '복구됨'이라는 앨범이 도입되었습니다. 이 앨범은 사용자가 기기에 사진 라이브러리에 포함되지 않은 사진이나 비디오를 가지고 있을 때 자동으로 나타납니다. "복구된" 앨범의 출현은 데이터베이스 손상으로 인해 손실된 사진과 비디오, 사진 라이브러리에 올바르게 저장되지 않은 카메라 응용 프로그램 또는 사진 라이브러리를 관리하는 타사 응용 프로그램에 대한 솔루션을 제공합니다. 사용자는 몇 가지 간단한 단계만 거치면 됩니다.

HTML은 데이터베이스를 직접 읽을 수 없지만 JavaScript 및 AJAX를 통해 읽을 수 있습니다. 단계에는 데이터베이스 연결 설정, 쿼리 보내기, 응답 처리 및 페이지 업데이트가 포함됩니다. 이 기사에서는 JavaScript, AJAX 및 PHP를 사용하여 MySQL 데이터베이스에서 데이터를 읽는 실제 예제를 제공하고 쿼리 결과를 HTML 페이지에 동적으로 표시하는 방법을 보여줍니다. 이 예제에서는 XMLHttpRequest를 사용하여 데이터베이스 연결을 설정하고 쿼리를 보내고 응답을 처리함으로써 페이지 요소에 데이터를 채우고 데이터베이스를 읽는 HTML 기능을 실현합니다.

PHP에서 데이터베이스 연결 오류를 처리하려면 다음 단계를 사용할 수 있습니다. mysqli_connect_errno()를 사용하여 오류 코드를 얻습니다. 오류 메시지를 얻으려면 mysqli_connect_error()를 사용하십시오. 이러한 오류 메시지를 캡처하고 기록하면 데이터베이스 연결 문제를 쉽게 식별하고 해결할 수 있어 애플리케이션이 원활하게 실행될 수 있습니다.

MySQLi를 사용하여 PHP에서 데이터베이스 연결을 설정하는 방법: MySQLi 확장 포함(require_once) 연결 함수 생성(functionconnect_to_db) 연결 함수 호출($conn=connect_to_db()) 쿼리 실행($result=$conn->query()) 닫기 연결( $conn->close())

Ele.me는 다양한 종류의 음식을 온라인으로 선택하고 주문할 수 있는 소프트웨어입니다. 판매자는 주문을 받은 후 즉시 주문을 처리합니다. 사용자는 소프트웨어를 통해 WeChat을 연결할 수 있습니다. 작동 방법을 알아보려면 PHP 중국어 웹사이트를 확인하세요. Ele.me를 WeChat에 바인딩하는 방법: 1. 먼저 Ele.me 소프트웨어를 열고 홈페이지에 들어간 후 오른쪽 하단에 있는 [내]를 클릭합니다. 2. 그런 다음 내 페이지에서 [계정]을 클릭합니다. ] 왼쪽 상단에 있는 3. 그런 다음 휴대폰, WeChat, Alipay 및 Taobao를 연결할 수 있는 개인 정보 페이지로 이동합니다. 4. 마지막 클릭 후 필요한 WeChat 계정을 선택합니다. WeChat 인증 페이지에 접속하고 [허용]을 클릭하세요.
