>  기사  >  백엔드 개발  >  sqlhelper 클래스란 무엇입니까?

sqlhelper 클래스란 무엇입니까?

(*-*)浩
(*-*)浩원래의
2019-05-10 16:05:315894검색

sqlhelper 클래스는 데이터베이스 작업 방법이 포함된 ".NET Framework" 기반의 데이터베이스 작업 구성 요소를 참조하며, SqlCommand 또는 SqlDataReader 등의 데이터베이스 연결을 반복적으로 작성하는 데 사용됩니다.

sqlhelper 클래스란 무엇입니까?

SqlHelper는 .NET Framework 기반의 데이터베이스 작업 구성 요소입니다. 구성 요소에는 데이터베이스 작업 방법이 포함되어 있습니다. SqlHelper는 데이터베이스 연결(SqlConnection), SqlCommand, SqlDataReader 등의 반복적인 작성을 단순화하는 데 사용됩니다. SqlHelper가 캡슐화되면 일반적으로 데이터베이스 연결 문자열, SQL 매개변수 등과 같은 일부 매개변수만 메서드에 전달하면 데이터베이스에 액세스할 수 있어 매우 편리합니다.

추천 과정: C# 튜토리얼.

SQLHelper.cs 파일에는 SqlHelper와 SqlHelperParameterCache라는 두 개의 클래스가 포함되어 있습니다.

//
public sealed class SqlHelper{}
public sealed class SqlHelperParameterCache{}

이 두 클래스 모두 앞에 Sealed 수정자가 붙어 수정되어 Sealed 클래스이므로 기본 클래스로 사용할 수 없으며 다른 클래스에서 상속받을 수 없음을 나타냅니다.

SqlHelper 클래스는 SQL Server 데이터베이스에 다양한 유형의 명령을 실행하는 데 사용할 수 있는 정적 메서드 집합을 제공합니다.

SqlHelperParameterCache 클래스는 성능 향상에 사용할 수 있는 명령 매개변수 캐싱 기능을 제공합니다. 이 클래스는 많은 Execute 메서드(특히 저장 프로시저만 실행하는 재정의된 메서드)에서 내부적으로 사용됩니다. 데이터 액세스 클라이언트는 이를 직접 사용하여 특정 명령에 대한 특정 매개변수 세트를 캐시할 수도 있습니다.

이번에는 SqlHelperParameterCache를 제쳐두고 SqlHelper 클래스를 분석해 보겠습니다.

method

SqlHelper

네 가지 전용 메서드가 있으며 AssignParameterValues ​​​​메서드에는 오버로드가 있습니다. #🎜🎜 #

AttachParameters: 지정된 SqlCommand에 매개변수 배열 추가

AssignParameterValues: SqlParameters(매개변수) 배열에 값 할당

PrepareCommand: 사용 SqlCommand(명령) 속성(예: 연결, 트랜잭션 환경 등)이 초기화됩니다.

13개의 공개 메서드가 있습니다. 데이터베이스를 쿼리하는 각 메서드는 많은 수의 오버로드를 사용하고 각 메서드는 약 8개의 오버로드를 사용합니다.

ExecuteNonQuery

이 메서드는 행이나 값을 반환하지 않는 명령을 실행하는 데 사용됩니다. 이러한 명령은 일반적으로 데이터베이스 업데이트를 수행하는 데 사용되지만 저장 프로시저에서 출력 매개변수를 반환하는 데에도 사용할 수 있습니다.

ExecuteDataset

이 메서드는 특정 명령에서 반환된 결과 집합이 포함된 DataSet 개체를 반환합니다.

ExecuteReader

이 메서드는 특정 명령에서 반환된 결과 집합이 포함된 SqlDataReader 개체를 반환하는 데 사용됩니다.

ExecuteScalar

이 메서드는 값을 반환합니다. 이 값은 항상 이 명령으로 반환된 첫 번째 행의 첫 번째 열입니다.

ExecuteXmlReader

이 메서드는 FOR XML 쿼리의 XML 조각을 반환합니다.

FillDataset

이 메서드는 DataSet에 데이터를 채웁니다.

UpdateDataset

이 메서드는 DataSet을 추가, 삭제, 수정하는 명령을 실행하는 데 사용됩니다.

CreateCommand

이 메서드는 SqlCommand를 만드는 데 사용됩니다.

Analytic

분석을 위해 ExecuteNonQuery() 메소드를 예로 들어보겠습니다.

sqlhelper 클래스란 무엇입니까?

위에서 본 것은 ExecuteNonQuery()의 오버로드된 9개 메서드이며, 그 중 처음 3개는 쿼리 준비용, 중간 3개는 쿼리 실행용, 마지막 3개는 SQL 트랜잭션 쿼리용입니다. 더 자세히 분석하면 2-1은 매개변수 없이 SQL 문을 실행하고, 2-2는 매개변수 배열(매개변수 배열은 비어 있을 수 있음)이 포함된 SQL 문을 실행하고, 2-3은 반환 값 없이 저장 프로시저를 실행합니다. . 실제로 1-1 및 1-3 오버로드는 매개변수 없는 SQL 문을 용이하게 하기 위한 것이고, 1-3 및 2-3 오버로드는 단지 저장 프로시저 호출을 용이하게 하기 위한 것입니다. 그 본질은 여전히 ​​1-2 및 1-2와 동일합니다. 2-2. 마찬가지다. 오버로드된 메서드의 몇 가지 간단한 용도는 다음과 같습니다.

아래에서는 ExecuteNonQuery를 사용하여 매개 변수가 있는 SQL 문을 실행합니다. F11을 사용하면 실행 프로세스 문을 문별로 볼 수 있으므로 SQLHelper 클래스의 사용법을 이해하는 데 도움이 됩니다.

#region RegisterUser 注册用户
        /// <summary>
        /// 注册用户
        /// </summary>
        /// <param>userinfo实体
        /// <returns>注册成功返回True,失败返回False</returns>
        public bool RegisterUser(JFEntity.UserInfo userinfo)
        {
            string sql = @"INSERT INTO T_User VALUES(@userID,@userName,@userSex,@userPassword,@userLevel)";
            SqlParameter[] sqlparamter = new SqlParameter[] 
            {
                new SqlParameter("@userID", SqlDbType.Int),
                new SqlParameter("@userName", SqlDbType.Char,30),
                new SqlParameter("@userSex", SqlDbType.Char,6),
                new SqlParameter("@userPassword", SqlDbType.Char,16),
                new SqlParameter("@userLevel", SqlDbType.Char,8),
            };
            sqlparamter[0].Value = userinfo.userID;
            sqlparamter[1].Value = userinfo.userName;
            sqlparamter[2].Value = userinfo.userSex;
            sqlparamter[3].Value = userinfo.userPassword;
            sqlparamter[4].Value = userinfo.userLevel;
            int result = SqlHelper.ExecuteNonQuery(SqlHelper.connectionString, CommandType.Text, sql, sqlparamter);
            if (result != 0)
            {
                return true;//注册成功
            }
            else
            {
                return false;//注册失败
            }
        }
        #endregion

위 내용은 sqlhelper 클래스란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.