1. 程式人生 > >ASP.NET ADO.NET資料訪問技術(一使用Command物件執行)

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);