C# ADO.NET編寫簡單的圖書館管理軟件


使用軟件:

Microsoft SQL Server 2012

Microsoft Visual Studio 2012

本文地址: http://www.cnblogs.com/go2bed/

 

參考資料:

http://www.w3school.com.cn/ W3School

http://baike.baidu.com/ 百度百科

http://blog.csdn.net/lvfeng19806001/article/details/8175153 WinForm控件縮寫

及其他。

 

經驗、注意與感悟:

  1. 圖書館需要的控件略多,注意命名規范。因為名字會很長,網上有觀點建議可以使用縮寫:btnSubmit(一個按鈕)等。(下附詳細)
  2. 寫一個靜態類,執行SQL語句。執行SELECT的返回DataSet;執行Delete、Update、Insert的返回“受影響行數”,且可以合為一個方法。SQL語句較強大,不只是幾個基本操作,組合使用很實用。
  3. 注意數據庫的設計,主鍵不要對用戶可見。設置級聯刪除等。時間存儲使用了SmallDateTime。
  4. 將“管理員”和“普通用戶”的權限區分開。
  5. 很多細節可以優化。例如搜索功能,可以輸入完畢立即搜索,不必點擊搜索鍵。CheckBox,選中后,自動進行反應。
  6. DataGridView可有很多玩法。
  7. 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM