ASP.NETにおけるExecuteNonQuery()メソッドの使い方

4237 ワード


以下、機械室料金システムD層におけるデータベースの追加、削除、修正について詳しく説明し、最後にまとめます.
ExecuteNonQuery()、ExecuteScale()、ExecuteReaderの使い方:
一、増加、削除、変更
1、新しい記録を追加する
 
Private Sub frmAddUser_Load(sender As Object, e As EventArgs) Handles MyBase.Load

{

MyConnection.Open();’     

MyCommand1.CommandText="InsertintoUser_Info(userID,PWD,Level,UserName) values (@UserID,@PWD,@Level,@UserName) ";

MyCommand1.Connection = MyConnection;

MyCommand1.ExecuteNonQuery();

’         ,    1

//  MyCommand1.ExecuteReader();       ,      System.Data.OleDb.OleDbDataReader     ,    :EOF 

//  MyCommand1. ExecuteScalar();       ,         

MyConnection.Close();

}


 
2、既存データの削除
Private Sub frmDeUser_Load(sender As Object, e As EventArgs) Handles MyBase.Load

{

MyConnection.Open();’     

MyCommand1.CommandText = "delete * from admin";

MyCommand1.Connection = MyConnection;

MyCommand1.ExecuteNonQuery();

’     n   ,    n

//  MyCommand1.ExecuteReader();   n   ,      System.Data.OleDb.OleDbDataReader     ,    :EOF

//  MyCommand1. ExecuteScalar();   n   ,         

MyConnection.Close();

}


3、既存データの修正
 
Private Sub frmModifyUser_Load(sender As Object, e As EventArgs) Handles MyBase.Load

MyConnection.Open();’     

MyCommand1.CommandText = "update User_Info set PWD='" & enUser.NewPWD & "' where UserName ='" & enUser.UserName & "'";

MyCommand1.Connection = MyConnection;

MyCommand1.ExecuteNonQuery();’

     1   ,    n

//  MyCommand1.ExecuteReader();

    1   ,      System.Data.OleDb.OleDbDataReader     ,    :EOF

//  MyCommand1. ExecuteScalar();    1   ,         

MyConnection.Close();


 
二、MyCommandのExecuteNonQuery()、ExecuteScale()、ExecuteReaderメソッドの違いについて:
1、ExecuteNonQuery():SQLを実行し、整数変数を返します.SQLがデータベースのレコードを操作している場合、SQL="CREATE TABLE LookupCodes(code_id smallint IDENTITY(1,1)PRIMARY KEY CLUSTERD,code_desc varchar(50)NOT NULL)"であれば、テーブルの作成に成功した後、このメソッドは–1を返します.
例:
 
privatevoid Page_Load(object sender, System.EventArgs e)

{

MyConnection.Open();’     

MyCommand1.CommandText= "CREATE TABLE LookupCodes (code_id smallint IDENTITY(1,1) PRIMARY KEYCLUSTERED, code_desc varchar(50) NOT NULL)"; MyCommand1.Connection = MyConnection;

MyCommand1.ExecuteNonQuery();’      LookupCodes ,    -1

//  MyCommand1.ExecuteReader();      LookupCodes ,      System.Data.OleDb.OleDbDataReader     ,    :EOF

//  MyCommand1.ExecuteScalar();      LookupCodes ,         

MyConnection.Close();

}

 
2、ExecuteScalar():SQLを実行し、(SQLがクエリーSelectである場合)クエリー結果の最初の行の最初の列を返し、(SQLがクエリーSelectでない場合)オブジェクトが実列化されていないため、結果を返すにはToString()ができず、Equals(null)ができない、つまり結果を返すには何の役にも立たない
3、executeReaderメソッドはSQLを実行し、(SQLがクエリSelectである場合)クエリ結果の集合を返し、タイプはSystemである.Data.OleDb.OleDbDataReaderでは、この結果からクエリーのデータを取得できます.SQLがクエリSelectでない場合は、データのないシステムを返します.Data.OleDb.OleDbDataReaderタイプの集合(EOF)
 
三、まとめ:
ASP.Netではデータベースの操作方法が多く、統一の目標を達成するには異なる方法を採用する可能性があります.ASPではRS.Addnewが好きな人もいれば、「Insert Into」が好きな人もいます.主に個人の習慣を見ていますが、もちろん性能の違いは大きな違いがあるかもしれません.これは私たちが普段の勉強で少しずつ経験を積むことに頼っています.
ちなみにASP.Netページには、次のような操作方法があります.
 Dim Paras As SqlParameter() ={New SqlParameter("@cardno", enStudent.cardno),

        New SqlParameter("@studentNo", enStudent.studentNo),

        New SqlParameter("@studentName", enStudent.studentName),

        New SqlParameter("@sex", enStudent.sex),

        New SqlParameter("@department", enStudent.department),

        New SqlParameter("@grade", enStudent.grade),

        New SqlParameter("@Studentclass", enStudent.Studentclass),

        New SqlParameter("@cash", enStudent.cash),

        New SqlParameter("@status", enStudent.status)

                                    }


 
以上、ASP.NETでのExecuteNonQuery()メソッドの使い方の簡単なまとめは、ご遠慮なく.