執行資料庫操作命令物件SqlCommand
阿新 • • 發佈:2018-12-15
資料庫應用程式的開發流程一般主要分為以下幾個步驟:
- 建立資料庫
- 使用Connection物件連線資料庫
- 使用Command物件對資料來源執行SQL命令並返回資料來源的資料
- 使用DataReader和DataSet物件讀取和處理資料來源的資料
使用Connection物件成功建立資料庫連線後,接下來就可以使用Command物件對資料來源執行查詢、新增、刪除和修改等各種SQL命令了。
SqlCommand物件用來對SQL Server資料庫執行操作命令 |
屬性 | 說明 |
---|---|
CommandText | 獲取或設定要執行的SQL語句或儲存過程 |
Connection | 獲取或設定Command物件所要連線的Connection物件 |
CommandTimeout | 獲取或設定命令等待執行的超時時間,預設值為30秒 |
Parameters | 獲取與該命令關聯的引數集合 |
CommandType | 獲取或設定命令的種類,預設值為Text |
SqlCommand物件的主要方法 |
方法 | 說明 |
---|---|
Cancel | 結束執行SQL語句 |
Dispose | 關閉Command物件,並釋放所佔用的系統資源 |
ExecuteScalar | 用於執行查詢語句,並返回單一值或者結果集中的第一條記錄的第一個欄位的值。該方法適合只要一個結果的查詢,例如使用Sum、Avg、Max、Min等函式的SQL語句 |
ExecuteNonQuery | 用於執行SQL語句,並返回SQL語句所影響的行數。該方法一般用於執行insert、delete、update等語句 |
ExecuteReader | 用於執行查詢語句,並返回一個DataReader型別的行集合 |
1. ExecuteNonQuery方法,執行更新操作,如與 insert、delete 和 update 語句有關的操作
SqlConnection con = new SqlConnection();
con.ConnectionString ="連線字串";
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "資料更新命令";
con.Open();
com.ExecuteNonQuery(); //執行Command命令
con.Close();
2. ExecuteReader方法,通常與查詢命令 select 一起使用,並返回一個數據讀取器物件 SqlDataReader 類的一個例項。
SqlConnection con = new SqlConnection();
con.ConnectionString = "連線字串";
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "查詢語句";
con.Open();
SqlDataReader sdr = com.ExecuteReader();
while(sdr.Read()){
Response.Write(sdr[0]); //輸出第一個欄位的內容
}
con.Close();
3. ExecuteScalar方法,如果只想檢索資料庫資訊中的一個值,而不需要返回表或資料流形式的資料,即可使用此方法。例如只需要返回count(*)、avg(價格)、sum(數量)等函式的結果就可以使用此方法。
SqlConnection con = new SqlConnection();
con.ConnectionString = "連線字串";
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "select avg(價格) from 你的表";
con.Open();
Response.Write(com.ExecuteScalar()); //輸出第一個欄位的內容
con.Close();
【例】使用SqlComman物件增加資料庫資料,將註冊資訊插入資料庫中
protected void btnRegister_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\ASUS\Desktop\案例\EBookShop\App_Data\ShopBookDB.mdf;Integrated Security=True;User Instance=True";
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = string.Format("insert into users(user_name,password,sex,age,email,createDate) values('{0}','{1}','{2}','{3}','{4}','{5}')",txtName.Text.Trim(),txtPwd.Text.Trim(),rbFemale.Checked?"男":"女",txtAge.Text.Trim(),txtEmail.Text.Trim(),DateTime.Now.ToShortDateString());
con.Open();
com.ExecuteNonQuery();
try {
Response.Write("<script>alert('註冊成功')</script>");
con.Close();
}
catch(Exception){
Response.Write("<script>alert('資料庫無法連線')</script>");
con.Close();
}
}
來自大神部落格:https://www.cnblogs.com/yankyblogs/p/6870138.html