>백엔드 개발 >C#.Net 튜토리얼 >Executenonquery 사용법에 대한 자세한 설명

Executenonquery 사용법에 대한 자세한 설명

藏色散人
藏色散人원래의
2020-02-26 10:13:5610420검색

Executenonquery 사용법에 대한 자세한 설명

executenonquery 사용법에 대한 자세한 설명

C#에서 데이터베이스 기술 운영을 위한 ExecuteNonQuery 사용법

최근에 기초 지식을 따라잡다가 우연히 데이터베이스에 대한 몇 가지 기술을 따라잡았습니다. 오늘은 ExecuteNonQuery에 대해 배웠고, 내 프로젝트 유지 관리 프로젝트 코드와 온라인 데이터 쿼리를 참조하고, 기본적으로 ExecuteNonQuery의 사용법을 이해했으며, 나중에 참조할 수 있도록 간단한 요약을 작성하겠습니다.

ExecuteNonQuery 메서드는 주로 데이터를 업데이트하는 데 사용되지만 물론 대상 작업(예: 데이터베이스 구조 쿼리 또는 테이블과 같은 데이터베이스 개체 생성)을 수행하는 데에도 사용할 수 있습니다. 일반적으로 Dataset을 사용하지 않고 데이터베이스의 데이터를 변경하기 위해 insert, update, delete 문을 실행할 때 사용됩니다. Select 문은 ExecuteNonQuery() 메서드에 적합하지 않습니다.

Recommend "C++ Video Tutorial"

1. 먼저 ExecuteNonQuery의 반환 값을 살펴보겠습니다.

1. Update, insert, Delete 문이 성공적으로 실행되기 위한 반환 값은 다음과 같습니다. 명령의 영향을 받는 행 수입니다. 영향을 받는 행 수가 0이면 반환 값은 0입니다.

2. 다른 모든 유형의 명령문의 경우 반환 값은 -1입니다. 3. 롤백이 발생하면 반환 값도 -1입니다.

4. 일반적으로 업데이트 작업의 경우 반환 값이 0보다 큰지 판단합니다. 그러나 다른 작업(예: 데이터 구조에 대한 작업(테이블 생성 등))의 경우 작업이 성공하면 반환 값은 -1이지만 주의하세요. 예를 들어 데이터베이스에 새 테이블을 추가하는 경우 생성이 성공하면 -1이 반환됩니다. 실패하면 예외가 발생합니다. 이러한 작업을 수행할 때 예외를 포착하려면 Try 및 Catch 문을 사용하는 것이 가장 좋습니다.

2. ExecuteNonQuery 메서드를 통해 데이터베이스를 업데이트하는 명령 개체의 프로세스는 매우 간단합니다.

1. 데이터베이스 연결을 생성합니다.

2. Command 개체를 생성하고 SQL Inser를 지정합니다. 업데이트, 쿼리 또는 저장 프로시저 삭제

3. 데이터베이스 연결에 Command 개체 연결

4. ExecuteNonQuery() 메서드 호출

5. 연결을 닫습니다.

3. 코드 예제 사용 방법:

1. 첫 번째는 ExecuteNonQuery 메서드를 통해 명령 개체를 사용하여 새 데이터베이스와 통신하는 방법을 제공하는 매우 간단한 클래스입니다.

public class ExecuteNonQueryClas
    {
        private static string connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString;

        //as this method provided static method, set the constructor to priviate to prevent create instance with 'new ExecuteNonQuery()'
        private ExecuteNonQueryClas()
        {

        }

        public static int ExecuteNonQuery(string commandText)
        {
            return ExecuteNonQuery(commandText, (SqlParameter[])null);
        }

        public static int ExecuteNonQuery(string commandText,SqlParameter[] commandParams)
        {
            //if connectionString is null, then throw exception
            if(connectionString == null || connectionString.Length == 0)
                throw new ArgumentNullException("connectionString");
            
            using(SqlConnection conn = new SqlConnection(connectionString))
            {
                SqlCommand cmd = new SqlCommand(commandText,conn);
                if (conn.State != ConnectionState.Open)
                    conn.Open();

                //check if the commandParams is not null, then attach params to command
                if(commandParams !=null)
                  AttachParameters(cmd,commandParams);

                int recordsAffected = cmd.ExecuteNonQuery();

                return recordsAffected;
            }

        }

        private static void AttachParameters(SqlCommand cmd,SqlParameter[] commandParams)
        {
            if (cmd == null) throw new ArgumentException("command");
            if (commandParams != null)
            {
                foreach (SqlParameter p in commandParams)
                {
                    if (p != null)
                    {
                        //// Check for derived output value with no value assigned
                        if ((p.Direction == ParameterDirection.InputOutput || p.Direction == ParameterDirection.Input) && (p.Value == null))
                        {
                            p.Value = DBNull.Value;
                        }
                        cmd.Parameters.Add(p);
                    }
                }
            }
        }
    }

2. 메인 함수 호출:

static void Main(string[] args)
        {
            string userName = Console.ReadLine();
            string loginId = "user";
            string sqlString = "update Users set UserName = @name where LoginID= @loginID";
            SqlParameter[] parms ={
                                      new SqlParameter("@name",userName),
                                      new SqlParameter("@loginID",loginId)
                                       
                                  };

            int rlt = ExecuteNonQueryClas.ExecuteNonQuery(sqlString,parms);

            Console.WriteLine(rlt);
            Console.Read();
        }

좋습니다. 위 내용은 ExecuteNonQuery 메서드 사용에 대한 가장 간단한 소개이자 예입니다.

위 내용은 Executenonquery 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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