使用軟件:
Microsoft SQL Server 2012
Microsoft Visual Studio 2012
本文地址: http://www.cnblogs.com/go2bed/
參考資料:
http://www.w3school.com.cn/ W3School
http://blog.csdn.net/lvfeng19806001/article/details/8175153 WinForm控件縮寫
及其他。
經驗、注意與感悟:
- 圖書館需要的控件略多,注意命名規范。因為名字會很長,網上有觀點建議可以使用縮寫:btnSubmit(一個按鈕)等。(下附詳細)
- 寫一個靜態類,執行SQL語句。執行SELECT的返回DataSet;執行Delete、Update、Insert的返回“受影響行數”,且可以合為一個方法。SQL語句較強大,不只是幾個基本操作,組合使用很實用。
- 注意數據庫的設計,主鍵不要對用戶可見。設置級聯刪除等。時間存儲使用了SmallDateTime。
- 將“管理員”和“普通用戶”的權限區分開。
- 很多細節可以優化。例如搜索功能,可以輸入完畢立即搜索,不必點擊搜索鍵。CheckBox,選中后,自動進行反應。
- DataGridView可有很多玩法。
- ComboBox顯示數據庫內容的細節:
comboBox1.DataSource = TypesDataSet.Tables[0];
comboBox1.ValueMember = "type"; //type是數據庫的列名。
獲取ComboBox 選中的值: comboBox.SelectedValue.ToString()
8.窗口間傳值,窗體的Show、Hide、Dispose、Application.Exit();等。
9.及其他。
源代碼就不貼了。程序和數據庫就不發了。
相關知識:
SQL
結構化查詢語言(Structured Query Language),簡稱SQL(發音:/ˈɛs kjuː ˈɛl/ "S-Q-L")
http://baike.baidu.com/view/595350.htm?fr=aladdin 百度百科
可以把 SQL 分為兩個部分:數據操作語言 (DML) 和 數據定義語言 (DDL)。
SQL (結構化查詢語言)是用於執行查詢的語法。但是 SQL 語言也包含用於更新、插入和刪除記錄的語法。
查詢和更新指令構成了 SQL 的 DML 部分:
- SELECT - 從數據庫表中獲取數據
- UPDATE - 更新數據庫表中的數據
- DELETE - 從數據庫表中刪除數據
- INSERT INTO - 向數據庫表中插入數據
SQL 的數據定義語言 (DDL) 部分使我們有能力創建或刪除表格。我們也可以定義索引(鍵),規定表之間的鏈接,以及施加表間的約束。
SQL 中最重要的 DDL 語句:
- CREATE DATABASE - 創建新數據庫
- ALTER DATABASE - 修改數據庫
- CREATE TABLE - 創建新表
- ALTER TABLE - 變更(改變)數據庫表
- DROP TABLE - 刪除表
- CREATE INDEX - 創建索引(搜索鍵)
- DROP INDEX - 刪除索引
select
SELECT LastName,FirstName FROM Persons
"Persons" 表:
Id |
LastName |
FirstName |
Address |
City |
1 |
Adams |
John |
Oxford Street |
London |
2 |
Bush |
George |
Fifth Avenue |
New York |
3 |
Carter |
Thomas |
Changan Street |
Beijing |
結果:
LastName |
FirstName |
Adams |
John |
Bush |
George |
Carter |
Thomas |
SELECT * FROM Persons
提示:星號(*)是選取所有列的快捷方式。
SELECT DISTINCT Company FROM Orders
對於一個列的重復數據,僅輸出一次。即各個不同。
distinct adj. 有區別的
Where
如需有條件地從表中選取數據,可將 WHERE 子句添加到 SELECT 語句。
語法
SELECT 列名稱 FROM 表名稱 WHERE 列 運算符 值
下面的運算符可在 WHERE 子句中使用:
操作符 |
描述 |
= |
等於 |
<> |
不等於 |
> |
大於 |
< |
小於 |
>= |
大於等於 |
<= |
小於等於 |
BETWEEN |
在某個范圍內 |
LIKE |
搜索某種模式 |
注釋:在某些版本的 SQL 中,操作符 <> 可以寫為 !=。
注意:
對於SQL server,可以使用 != 。
此處等於號使用 = 而不是 ==。
SQL 使用單引號來環繞文本值(大部分數據庫系統也接受雙引號)。如果是數值,請不要使用引號。
AND 和 OR 可在 WHERE 子語句中把兩個或多個條件結合起來。
SELECT * FROM Persons WHERE FirstName='Thomas' AND LastName='Carter'
SELECT * FROM Persons WHERE firstname='Thomas' OR lastname='Carter'
SELECT * FROM Persons WHERE (FirstName='Thomas' OR FirstName='William') AND LastName='Carter'
ORDER BY 語句用於根據指定的列對結果集進行排序。
ORDER BY 語句默認按照升序對記錄進行排序。
如果您希望按照降序對記錄進行排序,可以使用 DESC 關鍵字。
desc
abbr. 降序排列(descend 的縮寫)
descend
英 [dɪ'send] 美 [dɪ'sɛnd]
vi. 下降;下去;下來;遺傳;屈尊
vt. 下去;沿…向下
ORDER 例子4個:
實例 1
以字母順序顯示公司名稱:
SELECT Company, OrderNumber FROM Orders ORDER BY Company
結果:
Company |
OrderNumber |
Apple |
4698 |
IBM |
3532 |
W3School |
6953 |
W3School |
2356 |
實例 2
以字母順序顯示公司名稱(Company),並以數字順序顯示順序號(OrderNumber):
SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber
結果:
Company |
OrderNumber |
Apple |
4698 |
IBM |
3532 |
W3School |
2356 |
W3School |
6953 |
實例 3
以逆字母順序顯示公司名稱:
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC
結果:
Company |
OrderNumber |
W3School |
6953 |
W3School |
2356 |
IBM |
3532 |
Apple |
4698 |
實例 4
以逆字母順序顯示公司名稱,並以數字順序顯示順序號:
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC
ASC 代表升序排序,從小到大
結果:
Company |
OrderNumber |
W3School |
2356 |
W3School |
6953 |
IBM |
3532 |
Apple |
4698 |
注意:在以上的結果中有兩個相等的公司名稱 (W3School)。只有這一次,在第一列中有相同的值時,第二列是以升序排列的。如果第一列中有些值為 nulls 時,情況也是這樣的。
INSERT INTO 語句
INSERT INTO 語句用於向表格中插入新的行。
語法
INSERT INTO 表名稱 VALUES (值1, 值2,....)
我們也可以指定所要插入數據的列:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
注: 在數據后加大寫N,強制保存為Unicode格式。適用於漢字等。
Update 語句
Update 語句用於修改表中的數據。
語法:
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值
注: SET 后可以加多個列,用英文逗號隔開。
DELETE 語句
DELETE 語句用於刪除表中的行。
語法
刪除某一行:
DELETE FROM 表名稱 WHERE 列名稱 = 值
刪除所有行:
可以在不刪除表的情況下刪除所有的行。這意味着表的結構、屬性和索引都是完整的:
DELETE FROM table_name
或者:
DELETE * FROM table_name
Microsoft Access、MySQL 以及 SQL Server 所使用的數據類型和范圍
Microsoft Access 數據類型
數據類型 |
描述 |
存儲 |
Text |
用於文本或文本與數字的組合。最多 255 個字符。 |
|
Memo |
Memo 用於更大數量的文本。最多存儲 65,536 個字符。 注釋:無法對 memo 字段進行排序。不過它們是可搜索的。 |
|
Byte |
允許 0 到 255 的數字。 |
1 字節 |
Integer |
允許介於 -32,768 到 32,767 之間的數字。 |
2 字節 |
Long |
允許介於 -2,147,483,648 與 2,147,483,647 之間的全部數字 |
4 字節 |
Single |
單精度浮點。處理大多數小數。 |
4 字節 |
Double |
雙精度浮點。處理大多數小數。 |
8 字節 |
Currency |
用於貨幣。支持 15 位的元,外加 4 位小數。 提示:您可以選擇使用哪個國家的貨幣。 |
8 字節 |
AutoNumber |
AutoNumber 字段自動為每條記錄分配數字,通常從 1 開始。 |
4 字節 |
Date/Time |
用於日期和時間 |
8 字節 |
Yes/No |
邏輯字段,可以顯示為 Yes/No、True/False 或 On/Off。 在代碼中,使用常量 True 和 False (等價於 1 和 0) 注釋:Yes/No 字段中不允許 Null 值 |
1 比特 |
Ole Object |
可以存儲圖片、音頻、視頻或其他 BLOBs (Binary Large OBjects) |
最多 1GB |
Hyperlink |
包含指向其他文件的鏈接,包括網頁。 |
|
Lookup Wizard |
允許你創建一個可從下列列表中進行選擇的選項列表。 |
4 字節 |
MySQL 數據類型
在 MySQL 中,有三種主要的類型:文本、數字和日期/時間類型。
Text 類型:
數據類型 |
描述 |
CHAR(size) |
保存固定長度的字符串(可包含字母、數字以及特殊字符)。在括號中指定字符串的長度。最多 255 個字符。 |
VARCHAR(size) |
保存可變長度的字符串(可包含字母、數字以及特殊字符)。在括號中指定字符串的最大長度。最多 255 個字符。 注釋:如果值的長度大於 255,則被轉換為 TEXT 類型。 |
TINYTEXT |
存放最大長度為 255 個字符的字符串。 |
TEXT |
存放最大長度為 65,535 個字符的字符串。 |
BLOB |
用於 BLOBs (Binary Large OBjects)。存放最多 65,535 字節的數據。 |
MEDIUMTEXT |
存放最大長度為 16,777,215 個字符的字符串。 |
MEDIUMBLOB |
用於 BLOBs (Binary Large OBjects)。存放最多 16,777,215 字節的數據。 |
LONGTEXT |
存放最大長度為 4,294,967,295 個字符的字符串。 |
LONGBLOB |
用於 BLOBs (Binary Large OBjects)。存放最多 4,294,967,295 字節的數據。 |
ENUM(x,y,z,etc.) |
允許你輸入可能值的列表。可以在 ENUM 列表中列出最大 65535 個值。如果列表中不存在插入的值,則插入空值。 注釋:這些值是按照你輸入的順序存儲的。 可以按照此格式輸入可能的值:ENUM('X','Y','Z') |
SET |
與 ENUM 類似,SET 最多只能包含 64 個列表項,不過 SET 可存儲一個以上的值。 |
Number 類型:
數據類型 |
描述 |
TINYINT(size) |
-128 到 127 常規。0 到 255 無符號*。在括號中規定最大位數。 |
SMALLINT(size) |
-32768 到 32767 常規。0 到 65535 無符號*。在括號中規定最大位數。 |
MEDIUMINT(size) |
-8388608 到 8388607 普通。0 to 16777215 無符號*。在括號中規定最大位數。 |
INT(size) |
-2147483648 到 2147483647 常規。0 到 4294967295 無符號*。在括號中規定最大位數。 |
BIGINT(size) |
-9223372036854775808 到 9223372036854775807 常規。0 到 18446744073709551615 無符號*。在括號中規定最大位數。 |
FLOAT(size,d) |
帶有浮動小數點的小數字。在括號中規定最大位數。在 d 參數中規定小數點右側的最大位數。 |
DOUBLE(size,d) |
帶有浮動小數點的大數字。在括號中規定最大位數。在 d 參數中規定小數點右側的最大位數。 |
DECIMAL(size,d) |
作為字符串存儲的 DOUBLE 類型,允許固定的小數點。 |
* 這些整數類型擁有額外的選項 UNSIGNED。通常,整數可以是負數或正數。如果添加 UNSIGNED 屬性,那么范圍將從 0 開始,而不是某個負數。
Date 類型:
數據類型 |
描述 |
DATE() |
日期。格式:YYYY-MM-DD 注釋:支持的范圍是從 '1000-01-01' 到 '9999-12-31' |
DATETIME() |
*日期和時間的組合。格式:YYYY-MM-DD HH:MM:SS 注釋:支持的范圍是從 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59' |
TIMESTAMP() |
*時間戳。TIMESTAMP 值使用 Unix 紀元('1970-01-01 00:00:00' UTC) 至今的描述來存儲。格式:YYYY-MM-DD HH:MM:SS 注釋:支持的范圍是從 '1970-01-01 00:00:01' UTC 到 '2038-01-09 03:14:07' UTC |
TIME() |
時間。格式:HH:MM:SS 注釋:支持的范圍是從 '-838:59:59' 到 '838:59:59' |
YEAR() |
2 位或 4 位格式的年。 注釋:4 位格式所允許的值:1901 到 2155。2 位格式所允許的值:70 到 69,表示從 1970 到 2069。 |
* 即便 DATETIME 和 TIMESTAMP 返回相同的格式,它們的工作方式很不同。在 INSERT 或 UPDATE 查詢中,TIMESTAMP 自動把自身設置為當前的日期和時間。TIMESTAMP 也接受不同的格式,比如 YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或 YYMMDD。
SQL Server 數據類型
Character 字符串:
數據類型 |
描述 |
存儲 |
char(n) |
固定長度的字符串。最多 8,000 個字符。 |
n |
varchar(n) |
可變長度的字符串。最多 8,000 個字符。 |
|
varchar(max) |
可變長度的字符串。最多 1,073,741,824 個字符。 |
|
text |
可變長度的字符串。最多 2GB 字符數據。 |
|
Unicode 字符串:
數據類型 |
描述 |
存儲 |
nchar(n) |
固定長度的 Unicode 數據。最多 4,000 個字符。 |
|
nvarchar(n) |
可變長度的 Unicode 數據。最多 4,000 個字符。 |
|
nvarchar(max) |
可變長度的 Unicode 數據。最多 536,870,912 個字符。 |
|
ntext |
可變長度的 Unicode 數據。最多 2GB 字符數據。 |
|
Binary 類型:
數據類型 |
描述 |
存儲 |
bit |
允許 0、1 或 NULL |
|
binary(n) |
固定長度的二進制數據。最多 8,000 字節。 |
|
varbinary(n) |
可變長度的二進制數據。最多 8,000 字節。 |
|
varbinary(max) |
可變長度的二進制數據。最多 2GB 字節。 |
|
image |
可變長度的二進制數據。最多 2GB。 |
|
Number 類型:
數據類型 |
描述 |
存儲 |
tinyint |
允許從 0 到 255 的所有數字。 |
1 字節 |
smallint |
允許從 -32,768 到 32,767 的所有數字。 |
2 字節 |
int |
允許從 -2,147,483,648 到 2,147,483,647 的所有數字。 |
4 字節 |
bigint |
允許介於 -9,223,372,036,854,775,808 和 9,223,372,036,854,775,807 之間的所有數字。 |
8 字節 |
decimal(p,s) |
固定精度和比例的數字。允許從 -10^38 +1 到 10^38 -1 之間的數字。 p 參數指示可以存儲的最大位數(小數點左側和右側)。p 必須是 1 到 38 之間的值。默認是 18。 s 參數指示小數點右側存儲的最大位數。s 必須是 0 到 p 之間的值。默認是 0。 |
5-17 字節 |
numeric(p,s) |
固定精度和比例的數字。允許從 -10^38 +1 到 10^38 -1 之間的數字。 p 參數指示可以存儲的最大位數(小數點左側和右側)。p 必須是 1 到 38 之間的值。默認是 18。 s 參數指示小數點右側存儲的最大位數。s 必須是 0 到 p 之間的值。默認是 0。 |
5-17 字節 |
smallmoney |
介於 -214,748.3648 和 214,748.3647 之間的貨幣數據。 |
4 字節 |
money |
介於 -922,337,203,685,477.5808 和 922,337,203,685,477.5807 之間的貨幣數據。 |
8 字節 |
float(n) |
從 -1.79E + 308 到 1.79E + 308 的浮動精度數字數據。 參數 n 指示該字段保存 4 字節還是 8 字節。float(24) 保存 4 字節,而 float(53) 保存 8 字節。n 的默認值是 53。 |
4 或 8 字節 |
real |
從 -3.40E + 38 到 3.40E + 38 的浮動精度數字數據。 |
4 字節 |
Date 類型:
數據類型 |
描述 |
存儲 |
datetime |
從 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度為 3.33 毫秒。 |
8 bytes |
datetime2 |
從 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度為 100 納秒。 |
6-8 bytes |
smalldatetime |
從 1900 年 1 月 1 日 到 2079 年 6 月 6 日,精度為 1 分鍾。 |
4 bytes |
date |
僅存儲日期。從 0001 年 1 月 1 日 到 9999 年 12 月 31 日。 |
3 bytes |
time |
僅存儲時間。精度為 100 納秒。 |
3-5 bytes |
datetimeoffset |
與 datetime2 相同,外加時區偏移。 |
8-10 bytes |
timestamp |
存儲唯一的數字,每當創建或修改某行時,該數字會更新。timestamp 基於內部時鍾,不對應真實時間。每個表只能有一個 timestamp 變量。 |
|
其他數據類型:
數據類型 |
描述 |
sql_variant |
存儲最多 8,000 字節不同數據類型的數據,除了 text、ntext 以及 timestamp。 |
uniqueidentifier |
存儲全局標識符 (GUID)。 |
xml |
存儲 XML 格式化數據。最多 2GB。 |
cursor |
存儲對用於數據庫操作的指針的引用。 |
table |
存儲結果集,供稍后處理。 |
關於SQL連接、數據的類
參見 http://baike.baidu.com/view/159519.htm?fr=aladdin
DataSet
DataSet是ADO.NET的中心概念。可以把DataSet當成內存中的數據庫,DataSet是不依賴於數據庫的獨立數據集合。所謂獨立,就是說,即使斷開數據鏈路,或者關閉數據庫,DataSet依然是可用的,DataSet在內部是用XML來描述數據的,由於XML是一種與平台無關、與語言無關的數據描述語言,而且可以描述復雜關系的數據,比如父子關系的數據,所以DataSet實際上可以容納具有復雜關系的數據,而且不再依賴於數據庫鏈路。
在實際應用中,DataSet使用方法一般有三種:
(1) 把數據庫中的數據通過DataAdapter對象填充DataSet。
(2) 通過DataAdapter對象操作DataSet實現更新數據庫。
(3) 把XML數據流或文本加載到DataSet。
DataAdapter
DataSet對象表示數據源中數據的本地副本,它是Microsoft NET Framework的一個主要創新。DataSet對象本身可用來引用數據源,然而為了擔當真正的數據管理工具,DataSet必須能夠與數據源交互。為了實現該功能,.NET提供了DataAdapter類。
DataAdapter表示一組 SQL 命令和一個數據庫連接,它們用於填充 DataSet和更新數據源。
操作
使用帶SQL Server .NET數據提供程序的DataSet的步驟如下:
(1)創建SqlConnection對象,連接到SQL Server數據庫。
(2)創建SqlDataAdapter對象。該對象包含能夠指向4個SqlCommand對象的屬性,這些對象指定SQL語句在數據庫中進行SELECT、INSERT、DELETE和UPDATE等數據操作。
(3)創建包含一個或多個表的DataSet對象。
(4)使用SqlDataAdapter對象,通過調用Fill方法來填充DataSet表。SqlDataAdapter隱式執行包含SELECT語句的SqlCommand對象。
(5)修改DataSet中的數據。可以通過編程方式來執行修改,或者將DataSet綁定到用戶界面控件(例如DataGrid),然后在控件中更改數據。
(6)在准備將數據更改返回數據庫時,可以使用SqlDataAdapter並調用Update方法。SqlDataAdapter對象隱式使用其SqlCommand對象對數據庫執行INSERT、DELETE和UPDATE語句。
操作代碼
SqlConnection sqlCon = new SqlConnection(ConnectionStr);
string readCmdStr = "SELECT " + columnName + " FROM " + tableName;
SqlDataAdapter Adapter = new SqlDataAdapter(readCmdStr, sqlCon);
DataSet BooksDataSet = new DataSet();
Adapter.Fill(BooksDataSet);
sheet.DataSource = BooksDataSet.Tables[0];
sheet.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
sheet.Columns[0].Visible = false;
sheet.Columns[1].HeaderText = "書名";
sheet.Columns[2].HeaderText = "作者";
sheet.Columns[3].HeaderText = "編號";
sheet.Columns[4].HeaderText = "類型";
sheet.Columns[5].HeaderText = "實際位置";
sqlCon.Close();
DataReader
DataReader對象只允許以只讀、順向的方式查看其中所存儲的數據,提供一個非常有效率的數據查看模式,同時DataReader對象還是一種非常節省資源的數據對象。
DataReader對象可通過Command對象的ExecuteReader方法從數據源中檢索數據來創建。
示例(百度百科)
//連接數據庫
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=(local);Integrated Security=SSPI;Initial Catalog=db_showHouse";
//打開連接
conn.Open();
SqlCommand cmd = new SqlCommand("select User_names from tb_User", conn);
SqlDataReader drNew = cmd.ExecuteReader();
if (drNew.HasRows)
{
while (drNew.Read())
{
MessageBox.Show(drNew[0].ToString());
}
}
drNew.Close();
我的代碼:
SqlConnection sqlCon = new SqlConnection(ConnectionStr);
string checkCmdStr = "SELECT * FROM " + tableName;
SqlCommand checkCmd = new SqlCommand(checkCmdStr,sqlCon);
SqlDataReader reader = checkCmd.ExecuteReader();
bool isLoginSucceeded = false;
while (reader.Read())
{
if (Id == Convert .ToString( reader.GetValue(0) )&& Password == Convert.ToString( reader.GetValue(1)))
{
isLoginSucceeded = true;
break;
}
}
reader.Close();
sqlCon.Close();
if (isLoginSucceeded)
{
MessageBox.Show("登錄成功");
return true;
}
else
{
MessageBox.Show("登錄失敗,請檢查用戶名或密碼");
return false;
}
SqlCommand
http://baike.baidu.com/view/3574729.htm?fr=aladdin
SqlCommand cmd = new SqlCommand("insert into mynews value ('插入一條新數據')", con);
Command對象的構造函數的參數有兩個,一個是需要執行的SQL語句,另一個是數據庫連接對象。創建Command對象后,就可以執行SQL命令,執行后完成並關閉數據連接,示例代碼如下所示。
cmd.ExecuteNonQuery(); //執行SQL命令
con.Close(); //關閉連接
我的代碼:
SqlConnection sqlCon = new SqlConnection(ConnectionStr);
//只有在SQL語句, ‘’前加上大寫 N,才能使漢字正確添加。表示Unicode形式。數字,英文可以不加。
string insertStr = "INSERT INTO Books (bookName, bookAuthor, bookNumber, bookType, bookLocation) VALUES (N'" + bookName + "',N'" + bookAuthor + "',N'" + bookNumber + "',N'" + bookType + "',N'" + bookLocation + "')";
SqlCommand insertCmd = new SqlCommand(insertStr, sqlCon);
int LineInfluence = insertCmd.ExecuteNonQuery(); //執行並返回影響行數
if (LineInfluence == 1)
{
MessageBox.Show("添加成功");
SQLSelect(sheet);
}
else
{
MessageBox.Show("添加失敗");
}
SqlCommand和SqlDataAdapter的區別
SqlCommand對應DateReader
SqlDataAdapter對應DataSet
SqlCommand的執行效率比較高,但不靈活,功能也有限
SqlDataAdapter的效率要低點,它是連接的,可隨時更新數據,功能強大。
很多編程用其中一種就可以了。
SqlCommand是C#中與Sql數據庫打交道的對象,幾乎所有的Sql數據庫操作都需要使用該對象來實現,但其功能有限,只是簡單的實現了與Sql數據庫的接口而已;
SqlDataAdapter是一個功能強大的SqL數據適配器,也用於操作Sql數據庫,但它的操作都要通過SqlCommand來實現(有一個屬性對象的類型就是SqlCommand),也就是說,可以把SqlDataAdapter看作是一個把一些特殊功能封裝了、增強了的SqlCommand!
adapter是和dataset打交道的,command不能直接與dataset打交道,要通過adapter. adapter的定義是基於command的,當然也可以之間在定義adapter的時候寫入sql語句和connection對象 如<BR>dim ada as new sqlclient.sqladapter(select * from stu,conn1)<BR><BR>也可以這么寫 dim com1 as new sqlclient.sqlcommand(select * from stu,conn1)<BR>
dim ada as new sqlclient.sqladapter(com1)<BR>
想要把數據顯示出來就不得不用到adapter來給dataset傳值,而command不能直接傳值給dataset 可以這樣理解: DataSet用來裝表的集合,里面可以裝從SqlDataAdapter中返回的一系列的DataTable 如果返回的有多張表,那么我們可以通過索引的方式來找到想要的表:DataTable dt = ds.Tables[0];或DataTable dt = ds.Tables["products"]; DataSet可以直接做為數據控件的數據源,也可以從中獲取表或表的視圖來做為數據源.如: this.DataList1.DataSource = dt; this.DataList2.DataSource = dt.Tables[0]; this.Datalist3.DataSource = dt.Tables[0].DefaultView; 這三句的效果都是一樣的. SqlDataAdapter是針對於SQL數據庫的一個數據適配器,對應的還有OledbDataAdapter等等,它起着牽線搭橋的作用,我們可以用它來創建或是執行一個數據庫操作命令,並將返回的結果集填充到DataSet中去.
WinForm控件縮寫
控件名稱
縮寫
Buttom按鈕
Btn
CheckBox復選框
Chk
ColumnHeader視圖列表頭
Col
ComboBox組合框
Cbo
ContextMenu快捷菜單
Ctm
DataGrid數據網格控件
Dg
DataGridView數據網格視圖控件
Dgv
DteTimePicker時間輸入框
Dtp
DomainUpDown數值框
Dud
Form窗體
Frm
GroupBox 組合框
Grp
HscrollBar水平滾動條
Hsb
ImageList圖標列表
Img
Label文本標簽
Lbl
LinkLabel列表框
Lbl
ListBox列表框
Lst
ListView視圖列表
Lvw
Menu菜單
Menu
MenuItem菜單項
Menu
NumericUpDown數值框
Nud
Panel面板
Pnl
PictureBox圖片框
Pic
ProgressBar進度條
Prg
RadioButton單選框按鈕
Rdo
Spliter拆分條
Spl
StatusBar狀態欄
Stu
StatusBarPanel狀態欄區域
Stupnl
StatusStrip狀態欄
Stu
TabControl分頁控件
Tab
TabPage分頁標簽頁面
Page
TextBox文本框
Txt
Timer定時器
Tmr
ToolBar工具條
Tbr
ToolStrip工具欄
Tsp
TooStripButton工具欄按鈕
tspBtn
ToolStripComboBox工具欄下拉組合框
tspCbo
ToolStripDropDownMenu工具欄菜單項目
tspMenu
ToolStripLable工具欄靜態文本
tspLbl
ToolStripProgressBar工具欄進度條
tspPrg
ToolStripTextBox工具欄文本框
Tsptxt
TreeView樹狀視圖列表
Tvw
VscrollBar垂直滾動條
Vsb
WebBrowSer瀏覽器控件
Wb