**本次操作使用北風(NorthWind)資料庫
Connected 連線操作-可以即時取得資料
DisConnected 離線操作-用於長時間使用、頻繁使用
連線操作:
Step1: SqlConnection
把資料庫當作是水塔,資料是水塔裡面的水,而Connect是一條水管從資料庫把資料導出來。
Connect完我們必須打上Open()和Close(),就像是裝完水管我們必須要把水龍頭打開和關閉才能夠使用資料。
//SqlConnection conn = new SqlConnection("資料庫連接字串")
Step2: SqlCommand
篩選要讀取的資料表
Step3: SqlDataReader
讀取選擇的資料表
//SqlDataReader dataReader = command.ExecuteReader();
//dataReader.Read();
Read() 為布林值,有資料為真,反之。
一次只能叫出一筆資料,因此多搭配布琳的特性使用迴圈讀取資料。
Step4: UI
呈現
SqlConnection conn = new SqlConnection("Data Source =.; Initial Catalog = Northwind; Integrated Security = True");
conn.Open();
SqlCommand command = new SqlCommand("Select * from Products", conn);
SqlDataReader dataReader = command.ExecuteReader();
//為布林值,一次只推進一筆資料,需搭配迴圈使用
while (dataReader.Read())
{
string s = $"{dataReader["ProductName"],-40} - {dataReader["UnitPrice"]:c2}";
this.listBox1.Items.Add(s);
}
//MessageBox.Show(dataReader["ProductName"].ToString());
conn.Close();
離線操作:
和連線操作概念差不多,差在離線操作是把資料表抓下來,所做的更改都不會影響到資料庫裡面的資料。
Step1: SqlConnected
跟連線操作一樣的概念,先把連結建起來
Step2: SqlDataAdapter
像是轉接頭,把資料庫抓下來的資料表轉換
//SqlDataAdapter ad = new SqlDataAdapter("Select*from Categories",conn);
Step3: DataSet
用Fill()把資料表抓下來,並且塞到ds裡面。
ds是文字字串,必須用索引。
//DataSet ds=new DataSet();
//ad.Fill(ds);
Step4: UI ->DataGridView.DataSource
這邊是使用DataGridView呈現資料,如同上述ds是字串,因此需使用索引呼叫。
//this.dataGridView1.DataSource =ds.Tables[0];
SqlConnection conn =new SqlConnection("Data Source =.; Initial Catalog = Northwind; Integrated Security = True");
SqlDataAdapter ad = new SqlDataAdapter("Select*from Categories",conn);
DataSet ds=new DataSet();
ad.Fill(ds);
this.dataGridView1.DataSource =ds.Tables[0];
TryCatch使用:
有時無法預測資料庫什麼時候會存取失敗或是連線失敗,可以搭配TryCatch當作最後一道防線盡量防止出現例外。
但TryCatch會耗資源,所以也不能無限度的一直使用,可以自行取捨。
以下為使用TryCatch
try {
//Connectedi,
SqlConnection conn = new SqlConnection("Data Source =.; Initial Catalog = Northwind; Integrated Security = True");
conn.Open();
SqlCommand command = new SqlCommand("Select * from Products", conn);
SqlDataReader dataReader = command.ExecuteReader();
while (dataReader.Read())
{
string s = $"{dataReader["ProductName"],-40} - {dataReader["UnitPrice"]:c2}";
this.listBox1.Items.Add(s);
}
//MessageBox.Show(dataReader["ProductName"].ToString());
conn.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
這就是我今天的筆記,若有錯誤非常非常歡迎指正
以上,祝你我有個美好的一天
留言列表