파티 복음 손 개발 도구를 SQLServer에 기반하는 SqlClient

참고 : 코드는 호출 프로 시저 매개 변수 저장되어있는 것을 제외하고, 저와 다른 오라클 툴에 직접 SQLServer에 도구를 복사를 호출 할 수 있습니다

/// <요약>
    /// 기반 .NET (4.0 이전 버전과 호환) 개발 도구 SQLServerDBHelper
    /// <파라> 저자 : 수줍은 개구리 </ 파라>
    /// <파라> 시간 : 2019년 12월 6일 </ 파라>
    /// </ 요약>
    공공 정적 클래스 SQLServerDBHelper
    {
        /// <요약>
        SQL 문을 실행 /// 그 반환 DataTable을
        /// </ 요약>
        /// <PARAM NAME = "SQL"> SQL 語句 </ PARAM>
        /// <매개 변수 이름 = "DBURL"> 데이터베이스 링크 주소 </ PARAM>
        /// <리턴> </ 반품>
        공공 정적 DataTable을 GetDataTableBySQL (문자열 SQL 문자열 DBURL)
        {
            // 연결 객체 데이터베이스 연결 문자열과 결합 받기
            도록 SqlConnection CONN = 새도록 SqlConnection (DBURL);
            conn.Open (); // 자원 열기
                        객체 데이터베이스 작업을 얻기 //
            SqlCommand를 cmd를 conn.CreateCommand = ();
            시험
            {
                cmd.CommandText = SQL;
                SqlDataAdapter를 어댑터 = 새로운 SqlDataAdapter를 (cmd를)
                DataTable에 새로운 데이터 테이블의 DataTable을 () =;
                dataTable.TableName = "데이터 세트";
                adapter.Fill (데이터 테이블);
                cmd.Dispose (); // 릴리스 자원
                conn.Dispose (); // 릴리스 자원
                conn.Close (); // 닫기
                데이터 테이블을 반환;
            }
            캐치 (예외 예)
            {
                cmd.Dispose (); // 릴리스 자원
                conn.Dispose (); // 릴리스 자원
                conn.Close (); // 닫기
                예를 던져;
            }
        }
        /// <요약>
        /// 비 쿼리의 SQL 문을 실행
        /// </ 요약>
        /// <PARAM NAME = "SQL"> SQL 語句 </ PARAM>
        /// <매개 변수 이름 = "DBURL"> 데이터베이스 링크 주소 </ PARAM>
        /// <리턴> </ 반품>
        공공 정적의 INT GetNonQueryBySQL (문자열 SQL, 문자열 DBURL)
        {
            // 연결 객체 데이터베이스 연결 문자열과 결합 받기
            도록 SqlConnection CONN = 새도록 SqlConnection (DBURL);
            conn.Open (); // 자원 열기
                        객체 데이터베이스 작업을 얻기 //
            SqlCommand를 cmd를 conn.CreateCommand = ();
            시험
            {
                cmd.CommandText = SQL;
                INT NUM = cmd.ExecuteNonQuery ();
                cmd.Dispose (); // 릴리스 자원
                conn.Dispose (); // 릴리스 자원
                conn.Close (); // 닫기
                확실히 반환;
            }
            캐치 (예외 예)
            {
                cmd.Dispose (); // 릴리스 자원
                conn.Dispose (); // 릴리스 자원
                conn.Close (); // 닫기
                예를 던져;
            }
        }
        /// <요약>
        /// 실행 여러 SQL 문은 데이터베이스 트랜잭션을 구현합니다.
        /// </ 요약>
        /// <PARAM NAME = "SQLStringList"> 여러 SQL 문 </ PARAM>        
        /// <매개 변수 이름 = "BDUrl"> 데이터베이스 링크 주소 </ PARAM>     
        공공 정적의 INT GetNonQueryByManySQL (ArrayList를 SQLStringList, 문자열 BDUrl)
        {
            사용 (도록 SqlConnection CONN = 새도록 SqlConnection (BDUrl))
            {
                conn.Open ();
                SqlCommand를 cmd를 새로운하는 SqlCommand = ();
                cmd.Connection = CONN;
                SqlTransaction TX = conn.BeginTransaction ();
                cmd.Transaction = TX;
                시험
                {
                    INT NUM = 0;
                    경우 (나는 <SQLStringList.Count; INT 나 0 = I ++)
                    {
                        문자열 SQL = SQLStringList [I]로 .toString (); // 가져 오기 SQL 문
                        경우 (SQL.Trim (). 길이> 1)
                        {
                            cmd.CommandText = SQL;
                            NUM = cmd.ExecuteNonQuery ();
                        }
                        tx.Commit (); //은 트랜잭션을 커밋
                        cmd.Dispose (); // 릴리스 자원
                        conn.Dispose (); // 릴리스 자원
                        conn.Close (); // 닫기

                    }
                    반환 NUM은; //은 실행 결과의 수를 반환
                }
                캐치 (SQLEXCEPTION E)
                {
                    tx.Rollback (); // 트랜잭션 롤백
                    새로운 예외 (E.Message)를 던져;
                }
            }
        }
        /// <요약>
        // 저장된 복귀를 하나의 결과 세트를 호출
        /// <파라> OBJ 용도 : 새로운 V_DATA = {값 v_data1 = VALUE1} </ 파라>
        /// <파라> 주 : (OBJ)는, 파라미터 명 V_DATA에 저장된 값 값에 대응하는 </ 파라> 요구되지 않는 출력 파라미터를 정의의 SQLServer에는 커서가 없다
        /// </ 요약>
        /// <PARAM NAME = "저장소 이름"> 스토리지 이름 </ PARAM>
        /// <매개 변수 이름 = "DBURL"> 데이터베이스 링크 주소 </ PARAM>
        /// <매개 변수 이름 = "OBJ"> 파라미터 객체 저장 </ PARAM>
        /// <리턴> </ 반품>
        공공 정적 DataTable을 GetDataTableByStorageName (문자열 저장소 이름, 문자열 DBURL, 객체 OBJ)
        {
            // 연결 객체 데이터베이스 연결 문자열과 결합 받기
            도록 SqlConnection CONN = 새도록 SqlConnection (DBURL);
            conn.Open (); // 자원 열기
            객체 데이터베이스 작업을 얻기 //
            SqlCommand를 cmd를 conn.CreateCommand = ();
            시험
            {
                cmd.CommandText = 저장소 이름; // 저장 이름
                cmd.CommandType는 CommandType.StoredProcedure를 =;
                PropertyInfo [] = obj.GetType 성질 () GetProperties를 (BindingFlags.Instance | BindingFlags.Public); // 객체 필드 명과 값을 가져
                경우 (나는 <properties.Length; INT 나 0 = I ++)
                {// 입력 유형 및 값을 설정
                        cmd.Parameters.Add (특성 [I] .NAME, SqlDbType.NVarChar) .Direction = ParameterDirection.Input;
                        cmd.Parameters [등록 [I] .NAME] .Value 속성 = [I] .GetValue (OBJ, NULL); // 賦值
                }
                DataTable에 새로운 데이터 테이블의 DataTable을 () =;
                SqlDataAdapter를 ODA = 새로운 SqlDataAdapter를 CMD ();
                oda.Fill (데이터 테이블);
                dataTable.TableName = "데이터 세트";
                cmd.Dispose (); // 릴리스 자원
                conn.Dispose (); // 릴리스 자원
                conn.Close (); // 닫기
                데이터 테이블을 반환;
            }
            캐치 (예외 예)
            {
                cmd.Dispose (); // 릴리스 자원
                conn.Dispose (); // 릴리스 자원
                conn.Close (); // 닫기
                예를 던져;
            }
        }
        /// <요약>
        // 저장된 반환 문자열 문자열 정보를 호출 (마지막 위치가 문자열 형식 문자이어야 위치가 되돌릴 수 없습니다)
        /// <파라> OBJ 使用 方法 : 새로운 V_DATA = {값 v_data1 = 값 1, out_string = ""} </ 파라>
        /// <파라> 주 : OBJ가 출력 매개 변수에 대한 값을 입력 할 필요가 없다 out_string 값, 값에 대응하는 파라미터 이름 V_DATA에 저장된 </ 파라>
        /// </ 요약>
        /// <PARAM NAME = "저장소 이름"> </ PARAM>
        /// <PARAM NAME = "DBURL"> </ PARAM>
        /// <PARAM NAME = "OBJ"> </ PARAM>
        /// <리턴> </ 반품>
        공공 정적 문자열 GetStringDataByStorageName (문자열 저장소 이름, 문자열 DBURL, 객체 OBJ)
        {
            도록 SqlConnection CONN = 새도록 SqlConnection (DBURL);
            conn.Open ();
            객체 데이터베이스 작업을 얻기 //
            SqlCommand를 cmd를 conn.CreateCommand = ();
            시험
            {
                cmd.CommandText = 저장소 이름; // 저장 이름
                cmd.CommandType는 CommandType.StoredProcedure를 =;
                PropertyInfo [] = obj.GetType 성질 () GetProperties를 (BindingFlags.Instance | BindingFlags.Public); // 객체 필드 명과 값을 가져
                경우 (나는 <properties.Length; INT 나 0 = I ++)
                {
                    경우 (I == (properties.Length - 1))
                    {// 출력값과 타입을 설정
                        cmd.Parameters.Add ( "@"속성 + [I] .NAME, SqlDbType.NVarChar, short.MaxValue) .Direction = ParameterDirection.Output;
                        cmd.Parameters [ "@"속성 + [I] .NAME] .Value = DBNull.Value // 賦值
                    }
                    그밖에
                    {// 입력 유형 및 값을 설정
                        cmd.Parameters.Add ( "@"속성 + [I] .NAME, SqlDbType.NVarChar) .Direction = ParameterDirection.Input;
                        cmd.Parameters [ "@"속성 + [I] .NAME] .Value 속성 = [I] .GetValue (OBJ, NULL); // 賦值
                    }
                }
                cmd.ExecuteNonQuery ();
                스트링 메시지 cmd.Parameters = [ "@"+ 속성 [properties.Length - 1] .NAME] .Value.ToString (); // 반환하는 값을 얻을
                cmd.Dispose (); // 릴리스 자원
                conn.Dispose (); // 릴리스 자원
                conn.Close (); // 닫기
                메시지를 반환;
            }
            캐치 (예외 예)
            {
                cmd.Dispose (); // 릴리스 자원
                conn.Dispose (); // 릴리스 자원
                conn.Close (); // 닫기
                예를 던져;
            }
        }
        /// <요약>
        // 저장된 정보를 전화 및 DataTable을 문자열 문자열 데이터 테이블 반환 (출력 문자열의 마지막 하나를, 위치가 되돌릴 수 없습니다)
        /// <파라> OBJ 使用 方法 : 새로운 V_DATA = {값 v_data1 = 값 1, out_string = ""} </ 파라>
        /// <파라> 주 : (OBJ)는 파라미터 이름 V_DATA에 저장되고, 대응하는 값으로 값은 입력 값이 필요하지 출력 파라미터 out_string 때문에 SQLServer에있는 커서 출력 매개 </ 파라>을 정의 할 필요가 없다
        /// </ 요약>
        /// <PARAM NAME = "저장소 이름"> 스토리지 이름 </ PARAM>
        /// <매개 변수 이름 = "DBURL"> 데이터베이스 링크 주소 </ PARAM>
        /// <매개 변수 이름 = "OBJ"> 파라미터 객체 저장 </ PARAM>
        /// <매개 변수 이름 = "데이터 테이블"은> 결과 집합 </ PARAM>를 반환
        /// <리턴> </ 반품>
        공공 정적 문자열 GetStringAndDataTableByStorageName (문자열 저장소 이름, 문자열 DBURL, 객체 OBJ, DataTable에 데이터 테이블 아웃)
        {
            // 연결 객체 데이터베이스 연결 문자열과 결합 받기
            도록 SqlConnection CONN = 새도록 SqlConnection (DBURL);
            conn.Open (); // 자원 열기
            객체 데이터베이스 작업을 얻기 //
            SqlCommand를 cmd를 conn.CreateCommand = ();
            시험
            {
                cmd.CommandText = 저장소 이름; // 저장 이름
                cmd.CommandType는 CommandType.StoredProcedure를 =;
                PropertyInfo [] = obj.GetType 성질 () GetProperties를 (BindingFlags.Instance | BindingFlags.Public); // 객체 필드 명과 값을 가져
                경우 (나는 <properties.Length; INT 나 0 = I ++)
                {
                    경우 (I == (properties.Length - 1))
                    {// 출력값과 타입을 설정
                        cmd.Parameters.Add (특성 [I] .NAME, SqlDbType.NVarChar, short.MaxValue) .Direction = ParameterDirection.Output;
                        cmd.Parameters [등록 [I] .NAME] .Value = DBNull.Value // 賦值
                    }
                    그밖에
                    {// 입력 유형 및 값을 설정
                        cmd.Parameters.Add (특성 [I] .NAME, SqlDbType.NVarChar) .Direction = ParameterDirection.Input;
                        cmd.Parameters [등록 [I] .NAME] .Value 속성 = [I] .GetValue (OBJ, NULL); // 賦值
                    }
                }
                DataTable의 DT 신규의 DataTable을 () =;
                SqlDataAdapter를 ODA = 새로운 SqlDataAdapter를 CMD ();
                oda.Fill (DT);
                dt.TableName = "데이터 세트";
                데이터 테이블 (DT) = // 데이터의 결과 세트를 리턴
                // 문자열의 출력을 얻을; .Value.ToString () - 스트링 메시지 cmd.Parameters [1] .NAME 특성 [properties.Length] =를
                cmd.Dispose (); // 릴리스 자원
                conn.Dispose (); // 릴리스 자원
                conn.Close (); // 닫기
                메시지를 반환;
            }
            캐치 (예외 예)
            {
                cmd.Dispose (); // 릴리스 자원
                conn.Dispose (); // 릴리스 자원
                conn.Close (); // 닫기
                예를 던져;
            }
        }
    }

  

추천

출처www.cnblogs.com/ShyFrog/p/12000353.html