| 導購 | 订阅 | 在线投稿
分享
 
 
 

ASP.NET中數據庫的操作初步----增加、刪除、修改

來源:互聯網網民  2008-06-01 01:13:46  評論

注重:本文暫時不講解數據庫的數據調出和顯示,因爲他涉及的東西比較多,所以我們將另外具體講解。本文主要要講的是數據庫的增加、刪除、修改。一、定義OleDbCommand類型變量:MyCommand

要對數據庫進行增加、刪除、修改的操作我們還需要根據MyConnectio的類型定義一個OleDbCommand或者SqlCommand對象(請注重假如MyConnection是OleDbConnection類型,那麽只能用OleDbCommand;假如MyConnection是SqlConnection類型,那麽那麽只能用SqlCommand。這裏假設MyConnection是OleDbConnection類)。(方法一)你可以象拖放MyConnection一樣拖放一個OleDbCommand,並命名爲 MyCommand。(方法二)在(關聯文件).CS文件中protected System.Data.OleDb.OleDbConnection MyConnection;下面手動添加:

protected System.Data.OleDb.OleDbCommand MyCommand;

在private void InitializeComponent()中this.MyConnection = new System.Data.OleDb.OleDbConnection();的下一行下面手動添加:

this.MyCommand = new System.Data.OleDb.OleDbCommand();

即可完成對MyCommand的定義

說明:MyCommand的作用是用來執行SQL命令

二、利用定義的MyConnectio和MyCommand對數據庫進行增加、刪除、修改

首先我們需要連接並打開一個數據庫(關于數據庫的連接和打開的操作請察看我們以前的文章)。打開數據庫:MyConnectio.Open();

然後我們需要給MyCommand指定要執行的SQL命令 : MyCommand.CommandText = "delete from admin";

接著我們需要給MyCommand指定數據源(對那個數據庫執行SQL命令):MyCommand.Connection = MyConnection;然後我們執行MyCommand命令即可: MyCommand. ExecuteNonQuery();假如我們在執行還有"delete from admin";後需要接著執行 「insert into admin (Admin_Code,Admin_Pwd) values(『aa』,』bb』)」,則我們只要再次指定MyCommand指定要執行的SQL命令 : MyCommand.CommandText =「insert into admin (Admin_Code,Admin_Pwd) values(『aa』,』bb』)」,然後執行MyCommand. ExecuteNonQuery();即可。(由于數據庫未關閉,所以我們不需要也不可以再次MyConnectio.Open();,同理由于沒有改變MyCommand的數據源所以我們也沒有必要再次指定MyCommand.Connection = MyConnection;)

下面我們將具體講解如何在Page_Load()中對數據庫的增加、刪除、修改,最後我們再來總結一下ExecuteNonQuery(),ExecuteScalar(),ExecuteReader的用法

--------------------------------------------------------------

1、 增加新的記錄

private void Page_Load(object sender, System.EventArgs e)

{

MyConnection.Open();』打開數據庫

MyCommand1.CommandText = "insert into admin values(『aaddq『,『as『,『ss『)";

MyCommand1.Connection = MyConnection;

MyCommand1.ExecuteNonQuery();』由于增加了一條記錄,所以返回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();先刪除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 = "update admin set admin_code=』212』,Admin_pwd=』43』 where admin_code=』23』";

MyCommand1.Connection = MyConnection;

MyCommand1.ExecuteNonQuery();』由于修改了1條記錄,所以返回n

//或者MyCommand1.ExecuteReader();先修改了1條記錄,然後返回一個System.Data.OleDb.OleDbDataReader類型的對象,該對象爲:EOF

//或者MyCommand1. ExecuteScalar();先修改了1條記錄,返回未實列化的對象

MyConnection.Close();

}

三、關于MyCommand的ExecuteNonQuery(),ExecuteScalar(),ExecuteReader方法的區別:

1、ExecuteNonQuery():執行SQL,返回一個整型變量,假如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

//或者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)那麽返回一個沒有任何數據的System.Data.OleDb.OleDbDataReader類型的集合(EOF)

四、總結:

Asp.Net中對于數據庫的操作方法很多,要實現統一個目標不同的人可能會采取不同的方法,就似乎在ASP中有的人喜歡用RS.ADDNEW,有的人喜歡用」Insert Into」,主要是看個人的習慣,當然在性能上不同的方法可能會存在較大的差別,這個只能靠我們在平常的學習中一點一滴的積累經驗的。另外順便說一下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()

這個方法在我們以後的文章中,我們會慢慢給大家講解的,下一章我們要講的是如何從數據庫中讀取數據

 
特别声明:以上内容(如有图片或视频亦包括在内)为网络用户发布,本站仅提供信息存储服务。
 
注重:本文暫時不講解數據庫的數據調出和顯示,因爲他涉及的東西比較多,所以我們將另外具體講解。本文主要要講的是數據庫的增加、刪除、修改。一、定義OleDbCommand類型變量:MyCommand 要對數據庫進行增加、刪除、修改的操作我們還需要根據MyConnectio的類型定義一個OleDbCommand或者SqlCommand對象(請注重假如MyConnection是OleDbConnection類型,那麽只能用OleDbCommand;假如MyConnection是SqlConnection類型,那麽那麽只能用SqlCommand。這裏假設MyConnection是OleDbConnection類)。(方法一)你可以象拖放MyConnection一樣拖放一個OleDbCommand,並命名爲 MyCommand。(方法二)在(關聯文件).CS文件中protected System.Data.OleDb.OleDbConnection MyConnection;下面手動添加: protected System.Data.OleDb.OleDbCommand MyCommand; 在private void InitializeComponent()中this.MyConnection = new System.Data.OleDb.OleDbConnection();的下一行下面手動添加: this.MyCommand = new System.Data.OleDb.OleDbCommand(); 即可完成對MyCommand的定義 說明:MyCommand的作用是用來執行SQL命令 二、利用定義的MyConnectio和MyCommand對數據庫進行增加、刪除、修改 首先我們需要連接並打開一個數據庫(關于數據庫的連接和打開的操作請察看我們以前的文章)。打開數據庫:MyConnectio.Open(); 然後我們需要給MyCommand指定要執行的SQL命令 : MyCommand.CommandText = "delete from admin"; 接著我們需要給MyCommand指定數據源(對那個數據庫執行SQL命令):MyCommand.Connection = MyConnection;然後我們執行MyCommand命令即可: MyCommand. ExecuteNonQuery();假如我們在執行還有"delete from admin";後需要接著執行 「insert into admin (Admin_Code,Admin_Pwd) values(『aa』,』bb』)」,則我們只要再次指定MyCommand指定要執行的SQL命令 : MyCommand.CommandText =「insert into admin (Admin_Code,Admin_Pwd) values(『aa』,』bb』)」,然後執行MyCommand. ExecuteNonQuery();即可。(由于數據庫未關閉,所以我們不需要也不可以再次MyConnectio.Open();,同理由于沒有改變MyCommand的數據源所以我們也沒有必要再次指定MyCommand.Connection = MyConnection;) 下面我們將具體講解如何在Page_Load()中對數據庫的增加、刪除、修改,最後我們再來總結一下ExecuteNonQuery(),ExecuteScalar(),ExecuteReader的用法 -------------------------------------------------------------- 1、 增加新的記錄 private void Page_Load(object sender, System.EventArgs e) { MyConnection.Open();』打開數據庫 MyCommand1.CommandText = "insert into admin values(『aaddq『,『as『,『ss『)"; MyCommand1.Connection = MyConnection; MyCommand1.ExecuteNonQuery();』由于增加了一條記錄,所以返回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();先刪除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 = "update admin set admin_code=』212』,Admin_pwd=』43』 where admin_code=』23』"; MyCommand1.Connection = MyConnection; MyCommand1.ExecuteNonQuery();』由于修改了1條記錄,所以返回n //或者MyCommand1.ExecuteReader();先修改了1條記錄,然後返回一個System.Data.OleDb.OleDbDataReader類型的對象,該對象爲:EOF //或者MyCommand1. ExecuteScalar();先修改了1條記錄,返回未實列化的對象 MyConnection.Close(); } 三、關于MyCommand的ExecuteNonQuery(),ExecuteScalar(),ExecuteReader方法的區別: 1、ExecuteNonQuery():執行SQL,返回一個整型變量,假如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 //或者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)那麽返回一個沒有任何數據的System.Data.OleDb.OleDbDataReader類型的集合(EOF) 四、總結: Asp.Net中對于數據庫的操作方法很多,要實現統一個目標不同的人可能會采取不同的方法,就似乎在ASP中有的人喜歡用RS.ADDNEW,有的人喜歡用」Insert Into」,主要是看個人的習慣,當然在性能上不同的方法可能會存在較大的差別,這個只能靠我們在平常的學習中一點一滴的積累經驗的。另外順便說一下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() 這個方法在我們以後的文章中,我們會慢慢給大家講解的,下一章我們要講的是如何從數據庫中讀取數據
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有