1.DataSet是什麼?
DateSet在c#程式中建立一個暫存資料庫
2.命名空间
1
using System.Data;
3.DataSet的建立和用法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//建立一個臨時資料庫
DataSet ds = new DataSet();
//建立一個臨時表
DataTable dt = new DataTable();
//新增自增主鍵
DataColumn dcId = new DataColumn("id");
dcId.AutoIncrement = true;//自增
dcId.AutoIncrementSeed = 1;//種子
dcId.AutoIncrementStep = 1;//步長
dt.Columns.Add(dcId);//加入dt中
//第二種新增列的方式, 新增一列名字
DataColumn cdName = new DataColumn("name", typeof(string));
dt.Columns.Add(cdName);
//新增一行數據
DataRow row = dt.NewRow();
row["name"] = "rii";
row["password"] = "123456";
dt.Rows.Add(row);
4.以下為完整程式碼,及一些其他用法包括多種新增方式、遍歷等
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
namespace dataset
{
class Program
{
static void Main(string[] args)
{
//建立一個臨時資料庫
DataSet ds = new DataSet();
//建立一個臨時表
DataTable dt = new DataTable();
//datatable被new出來時是什麼都沒有的,需要加入行列
//第一種新增方式 新增一列id號
//新增自增主鍵
DataColumn dcId = new DataColumn("id");
dcId.AutoIncrement = true;//自增
dcId.AutoIncrementSeed = 1;//種子
dcId.AutoIncrementStep = 1;//步長
dt.Columns.Add(dcId);//加入dt中
//第二種新增列的方式, 新增一列名字
DataColumn cdName = new DataColumn("name", typeof(string));
dt.Columns.Add(cdName);
//第三種新增方式
dt.Columns.Add("password", typeof(string));
//新增行數據
// DataRow row = new DataRow();這個種是不對的,new出來是沒有格式的
//原因是datarow的建構子是protected的所以不能再外部new DataRow的對象
DataRow row = dt.NewRow();
row["name"] = "tian";
row["password"] = "123456";
dt.Rows.Add(row);
//新增多行數據
for (int i = 0; i < 10; i++)
{
DataRow dr = dt.NewRow();
dr["name"] = "LS" + i.ToString();
dr["password"] = "456" + i.ToString();
dt.Rows.Add(dr);
}
//把表加到DataSet中
ds.Tables.Add(dt);
//遍歷所有的表
foreach(DataTable table in ds.Tables)
{
//遍歷每行
foreach(DataRow rows in table.Rows)
{
for(int i = 0; i < table.Columns.Count; i++)
{
Console.Write(rows[i] + "\t");
}
Console.WriteLine();
}
}
}
}
}
以上只是為了示範DataSet原理,和簡單用法
真正用法
填滿DataSet
DataSet不是上我們手動填的,而是導入資料庫的。
1
2
3
4
5
//在內部自動封裝了sqlconnection和sqlcommand
SqlDataAdapter adapter = new SqlDataAdapter(sql, connString);
DataSet ds = new DataSet();
adapter.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
這樣就導入到了臨時庫中。 下面是一個窗體實例:
這是點擊按鈕後的結果圖
下面為程式碼部分:
頭檔需要添加
1
2
using System.Data.SqlClient;
using System.Configuration; //需要引用以下這個組件
1
2
3
4
5
6
7
string connString = ConfigurationManager.AppSettings["connString"];
string sql = "select * from Tbstudent";
//在內部自動封裝了sqlconnection和sqlcommand
SqlDataAdapter adapter = new SqlDataAdapter(sql, connString);
DataSet ds = new DataSet();
adapter.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
這是按鈕的程式碼部分 中間connString 應用了設定檔