>백엔드 개발 >C#.Net 튜토리얼 >ExecuteNonQuery(),ExecuteScalar(),ExecuteReader의 사용법

ExecuteNonQuery(),ExecuteScalar(),ExecuteReader의 사용법

巴扎黑
巴扎黑원래의
2016-12-20 10:56:581761검색

아래에서는 Page_Load()에서 데이터베이스를 추가, 삭제, 수정하는 방법을 자세히 설명하겠습니다. 마지막으로 ExecuteNonQuery(), ExecuteScalar(), ExecuteReader의 사용법을 정리하겠습니다

-- --- ---------------------------------- --- -------
1. 새 레코드 추가
private void Page_Load(object sender, System.EventArgs e)
{
MyConnection.Open();'데이터베이스 열기
MyCommand1.CommandText = "관리자 값에 삽입('aaddq','as','ss')";
MyCommand1.Connection = MyConnection;
MyCommand1.ExecuteNonQuery();'레코드에 추가되었으므로 Return 1
//또는 MyCommand1.ExecuteReader(); 먼저 레코드를 추가한 다음 System.Data.OleDb.OleDbDataReader 유형의 개체(EOF
//또는 MyCommand1)를 반환합니다. ExecuteScalar(); 먼저 레코드를 추가하고 구현되지 않은 개체를 반환합니다
MyConnection.Close()
}


--------------- - ------------------------------------------------- - -
2. 기존 데이터 삭제
private void Page_Load(object sender, System.EventArgs e)
{
MyConnection.Open();'데이터베이스 열기
MyCommand1.CommandText = " delete * from admin";
MyCommand1.Connection = MyConnection;
MyCommand1.ExecuteNonQuery();'n개의 레코드가 삭제되었으므로 n이 반환됩니다.
//또는 MyCommand1.ExecuteReader(); delete n 첫 번째 레코드를 기록한 다음 System.Data.OleDb.OleDbDataReader 유형의 개체를 반환합니다. 즉, EOF
//또는 MyCommand1입니다. ExecuteScalar()는 먼저 n개의 레코드를 삭제하고 구현되지 않은 개체를 반환합니다.
MyConnection .Close ()
}


-------------------------------- -- -------------
3. 기존 데이터 수정
private void Page_Load(object sender, System.EventArgs e)
{
MyConnection.Open();'데이터베이스 열기
MyCommand1.CommandText = "관리자 설정 admin_code='212',Admin_pwd='43' where admin_code='23'"; .Connection = MyConnection;
MyCommand1.ExecuteNonQuery();'1개의 레코드가 수정되었으므로 n이 반환됩니다.
//또는 MyCommand1.ExecuteReader(); 먼저 1개의 레코드를 수정한 후 System .Data를 반환합니다. OleDb.OleDbDataReader 유형 개체는 다음과 같습니다. EOF
//또는 MyCommand1. ExecuteScalar()는 먼저 1개의 레코드를 수정하고 구현되지 않은 개체를 반환합니다.
MyConnection.Close()}


3. MyCommand의 ExecuteNonQuery(), ExecuteScalar() 및 ExecuteReader 메서드 간의 차이점:
1. ExecuteNonQuery(): SQL이 데이터베이스 레코드에서 작동하는 경우 정수 변수를 반환합니다. 작업의 영향을 받는 레코드 수입니다. SQL="CREATE TABLE LookupCodes (code_id smallint IDENTITY(1,1) PRIMARY KEY CLUSTERED, code_desc varchar(50) NOT NULL)"인 경우 이 메서드는 테이블이 완료된 후 -1을 반환합니다. 성공적으로 생성되었습니다.
예:
private void Page_Load(object sender, System.EventArgs e)
{
MyConnection.Open();'데이터베이스 열기
MyCommand1.CommandText = "CREATE TABLE LookupCodes( code_id smallint IDENTITY(1,1) PRIMARY KEY CLUSTERED, code_desc varchar(50) NOT NULL)"; MyCommand1.Connection = MyConnection;
MyCommand1.ExecuteNonQuery();'먼저 LookupCodes 테이블을 생성한 다음 -1 / /Or MyCommand1.ExecuteReader(); 먼저 LookupCodes 테이블을 만든 다음 System.Data.OleDb.OleDbDataReader 유형의 개체를 반환합니다. EOF
//Or MyCommand1. 먼저 생성합니다. LookupCodes 테이블은 구현되지 않은 개체를 반환합니다.
MyConnection.Close();
}


2. ExecuteScalar(): SQL을 실행합니다(SQL이 쿼리인 경우 선택). 쿼리 결과 첫 번째 행과 첫 번째 열인 경우(SQL이 쿼리 Select가 아닌 경우) 구체화되지 않은 개체가 반환됩니다. 개체가 구체화되지 않았기 때문에 반환 결과는 ToString() 또는 Equals(null)일 수 없습니다. 이는 결과가 반환됨을 의미합니다. 효과가 없습니다

3. ExecuteReader 메서드는 SQL을 실행하고(SQL이 쿼리 Select인 경우) 쿼리 결과 모음을 반환합니다. 유형은 System.Data.OleDb.OleDbDataReader입니다. 이 결과를 통해 쿼리 데이터를 얻을 수 있습니다. (SQL이 쿼리 선택이 아닌 경우) 데이터(EOF) 없이 System.Data.OleDb.OleDbDataReader 유형의 컬렉션을 반환합니다.


4. 요약:
ASP의 데이터베이스의 경우. Net 동일한 목표를 달성하기 위해 여러 사람들이 다른 방법을 채택할 수 있습니다. ASP에서와 마찬가지로 어떤 사람들은 RS.ADDNEW를 사용하기를 좋아하고 어떤 사람들은 주로 개인에 따라 다릅니다. 물론, 방법에 따라 성능에는 큰 차이가 있을 수 있습니다. 이는 매일의 학습에서 조금씩 경험을 축적해야만 달성할 수 있습니다. 그런데 ASP.Net 페이지에서는 다음과 유사한 작업 방법을 제공합니다.
OleDbCommand2.Parameters("au_id").Value = TextBox1.Text
OleDbCommand2.Parameters("au_lname").Value = TextBox2.Text 
OleDbCommand2.Parameters("au_fname").Value = TextBox3.Text 
OleDbCommand2.Parameters("phone").Value = TextBox4.Text 
OleDbCommand2.Parameters("address").Value = TextBox5.Text 
OleDbCommand2.Parameters("city").Value = TextBox6.Text 
OleDbCommand2.Parameters("st").Value = TextBox7.Text 
OleDbCommand2.Parameters("zip").Value = TextBox8.Text 
OleDbCommand2.Parameters("contract").Value = CheckBox1.Checked 
cmdresults = OleDbcommand2.ExecuteNonQuery()

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