ASP.NET ADO.NET資料訪問技術(一使用Command物件執行)
【SQLConnection類】
常用方法:
Open:開啟資料庫連線
Close:關閉資料庫連線
常用屬性:
ConnectionString:設定開啟SQL Server資料庫的字串
State:判斷資料庫的連線狀態:Broken、Closed、Connecting、Fetching、open
DataSource:要連線的SQL Server例項的名稱
DataBase:要進行操作的資料庫名稱
【Command物件】
重用屬性:
Connection:連線資料庫,相當於與資料庫有聯絡了,只對將對哪個資料庫進行操作了
CommandText:SQL語句
CommandType:指定對資料庫的操作型別或請求
CommandTimeOut:確定Command物件的Execute方法執行的最長等待時間,預設值為30秒。
State:設定Command物件的狀態
常用方法:
Execute:有兩種,分別使用於不同的情況
ExecuteNonQuery
增刪改操作
ExecuteReader
查詢操作
【DataAdapter物件】
DataAdapter相當於DataSet和資料來源之間的橋樑,應用程式通過DataAdapter物件從資料庫中讀取資料到DataSet中
常用屬性:
SelectCommand、InsertCommand、DeleteCommadn、UpdateCommand
重用方法:
Fill:執行SelectCommand,用資料來源的資料填充DataSet物件
Update:對DataSet物件中每個插入行、更新行或刪除行分別呼叫InsertCommand.UpdateCommand.DeleteCommand,將DataSet中更改的內容更新到初始的資料來源中
【DataReader】
其實DataReader是一個讀取資料庫的指標,從資料庫中表的上面往下一行一行的對
常用屬性“
FieldCount:讀取的一行資料中的欄位數
常用方法:
read():讓記錄指標指向本結果集中的下一條記錄,返回值為bool
GetValue(該行對應列的索引值int):因為不知道對應列的資料型別,所以返回型別是object型別,需要強制轉換,只有開始read()讀後,才能進行此方法,先讀後取
獲得指定欄位:此方法必需提前直到要獲取欄位的型別,GetString(索引值)、GetInt32(索引值)等
【DataSet】
DataSet相當於記憶體中暫存的一個數據庫,不僅包括多張表,還包括資料表之間的約束
包括多個子類,其中最常見的有一下幾個:
DataRow:資料表,用來儲存資料,一個數據集可包含多張表
DataRow:資料行,資料表中的一行記錄
DataColumn:資料列,資料表中的一列記錄
--------------------- 作者:王如霜 來源:CSDN 原文:https://blog.csdn.net/wrs120/article/details/72751429?utm_source=copy 版權宣告:本文為博主原創文章,轉載請附上博文連結!
使用Connection連線資料庫
方法一:
先在web.configzhong中,將<connectionStrings/>標記用下面程式碼替換
<connectionStrings>
<add name="ConnectionString" connectionString="Data Source=.\SQLEXPRESS;
AttachDbFilename=|DataDirectory|\mydatabase.mdf;Integrated Security=True; User
Instance=True"/>
</connectionStrings>
其中Data Source 表示SQL Server資料庫伺服器名稱,AttachDbFilename表示資料庫的路徑和檔名,|DataDirectory|表示網站預設資料庫路徑App_Data。
一:
using System.Data.SqlClient;
using System.Configuration;
二:
//從web.config配置檔案去除資料庫連線串
string sqlconnstr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
三:
//建立資料庫連線物件
SqlConnection sqlconn = new SqlConnection(sqlconnstr);
四:
//開啟連線物件
sqlconn.Open();
五:
//SQL命令賦值
sqlcommand.CommandText = "select * from student";
六:
//建立DataReader物件,並返回查詢結果
SqlDataReader sqldatareader = sqlcommand.ExecuteReader();
//獲取結果集的第一行記錄(0代表第一個欄位的值)
while(sqldatareader.Read())
{
//sqldatareader.GetString(0)或者sqldatareader.GetDateTime(0)
//來獲取想要獲取的
}
七:
//關閉連線
sqlcommand = null;
sqlconn.Close();
sqlconn = null;
方法二:
SqlConnection con = new SqlConnection("server=.;database=Vote;uid=sa;pwd=123456");//建立資料庫連線物件
con.Open();//開啟連線
SqlCommand cmd = new SqlCommand("select * from voteMaster where voteSum>[email protected]", con);//建立command物件,代表可以對資料庫操作了
SqlParameter para = new SqlParameter("@voteSum", SqlDbType.Int);
para.Value = 1;
cmd.Parameters.Add(para);//新增引數
獲取查詢結果
使用DataReader物件,一行一行的讀取查詢結果,並獲得相應列的值
//建立DataReader物件,並返回查詢結果
SqlDataReader sqldatareader = sqlcommand.ExecuteReader();
//獲取結果集的第一行記錄(0代表第一個欄位的值)
while(sqldatareader.Read())
{
//sqldatareader.GetString(0)或者sqldatareader.GetDateTime(0)
//來獲取想要獲取的
}
使用ExecuteNonQuery()執行增刪改,返回受影響行數
sqlcommand.ExecuteNonQuery();
sql語句的一些特殊寫法
//可以為特定的值新增標記如:
sqlcommand.CommandText = "insert into student(Name,Sex,birthday) values(@Name,@Sex,@birthday)";
//解釋@Name,@Sex,@birthday
sqlcommand.Parameters.AddWithValue("@Name",textBox1.Text);
sqlcommand.Parameters.AddWithValue("@Sex",textBox2.Text);
sqlcommand.Parameters.AddWithValue("@birthday",textBox3.Text);