C#對 SQL 資料庫操作彙總(轉載自xiaoxiyou)
目錄
要對資料庫進行增刪查改操作,先要連線資料庫,然後通過 command 類中相應方法或 Dataset 資料集中相應方法來
完成對資料庫的有關操作
一、建立資料庫連線(SqlConnection 類)
步驟:
1、定義連線字串connString
2、建立 SqlConnection 物件
(1) 兩種使用者登入連線字串(Windwos 使用者,SQL 資料庫使用者)
string connString = "Data Source=HP;Initial Catalog=Xk;Integrated Security=True"; //windows 使用者 連線資料庫字串 string connString ="Data Source=HP;Initial Catalog=xk;User ID=SA;PassWord="; //SQL 使用者 連線字串
(2)建立 SqlConnection 物件
方法一:
SqlConnection conn = new SqlConnection(connString); //帶 連線字串 例項化SqlConnection
方法二:
SqlConnection conn = new SqlConnection(); //例項化 SqlConnection
conn.ConnectionString=connString; //把 連線字串 賦給 conn 物件的 ConnectionString 屬性
(3)開啟連線
conn.open();
(4)關閉連線
conn.close();
(5)建立連線例子Example
string connString = "Data Source=HP;Initial Catalog=Xk;Integrated Security=True"; //windows使用者 連線資料庫字串
SqlConnection conn = new SqlConnection(connString); //帶連線字串 例項化SqlConnection
conn.open();
二、Sqlcommand 類操作資料庫
1、建立資料庫連線
2、定義 SQL 語句
3、建立 Command 物件
4、執行命令
(1)command 類的構造方法
command 類的常用構造方法有下面三種,使用不同的構造方法,建立物件的內容也有所不同。
構造方法 | 說明 |
SqlCommand() | 不帶引數的建構函式 |
SqlCommand(string commandText) | 帶命令字串的建構函式 |
SqlCommand(string commandText,SqlConnection mySqlConnection) | 帶命令字串及連線字串的建構函式 |
(2)command 類的主要成員
屬 性 | 說 明 |
Connection | Command 物件使用的資料庫連線 |
CommandType | 設 置 如 何 解 釋 CommandText 值 ( 即 設 置 CommandText 所 代 表 的 含 義 )。 有 三 個 選 項(StoredProcedure 儲存過程名,TableDirect 表名,Text SQL 文字命令),預設為 Text |
CommandText | 執行的 SQL 語句 |
方法 | 說明 |
ExecuteNonQuery | 執行不返回行的語句,如 SELECT,UPDATE,DELETE |
ExecuteReader | 返回 DataReader 物件 |
ExecuteScalar | 返回單個值,如執行 COUNT(*) |
(3)下面舉一些例子,學習過程中要舉一返三
- SqlCommand()建構函式、ExecuteScalar 方法,查詢學生人數
string connString = "Data Source=HP;Initial Catalog=Xk;Integrated Security=True"; //windows使用者 連線資料庫字串
SqlConnection conn = new SqlConnection(connString); //帶連線字串例項化 SqlConnection
conn.open();
string SQLstring = "SELECT count(*) from Student";
SqlCommand command = new SqlCommand(); //建立 command 物件,SqlCommand() 不帶引數的建構函式
command.Connection = conn;
command.CommandText = SQLstring; //將SQLstring賦給CommandText;
int num = (int)command.ExecuteScalar(); //執行 SQLsrting 查詢語句,返回學生人數,注意要進行資料轉換
- SqlCommand (String)建構函式、ExecuteReader 方法讀取學生資訊
string connString = "Data Source=HP;Initial Catalog=Xk;Integrated Security=True"; //windows使用者 連線資料庫字串
SqlConnection conn = new SqlConnection(connString); //帶連線字串例項化 SqlConnection
conn.open();
string strQuery = "SELECT StuName,Sex ,BirthDay FROM dbo.Student";
SqlCommand command = new SqlCommand(strQuery); //帶命令字串的建構函式
command.Connection = sqlConn;
// 執行查詢
SqlDataReader dataReader = command.ExecuteReader() //ExecuteReader()方法 返回 DataReader 物件
string StuName = “”; // 班級名稱
string Sex=“”;
string BirthDay=“”;
// 迴圈讀出所有的年級名,並新增到年級列表框中
while (dataReader.Read())
{
StuName= (string)dataReader[0];//讀取第一單元的值
Sex = (string)dataReader[1]; //讀取第二單元的值
BirthDay=(string)dataReader[2]; //讀取第三單元的值
cboClass.Items.Add(className);
}
dataReader.Close();
- 使用 SqlCommand (String, SqlConnection)建構函式、ExecuteNonQuery 命令,插入修改刪除記錄
string connString = "Data Source=HP;Initial Catalog=Xk;Integrated Security=True"; //windows使用者 連線資料庫字串
SqlConnection conn = new SqlConnection(connString); //帶連線字串例項化 SqlConnection
conn.open();
// strQuery 字串可以用 insert 、updata、delete 命令完成插改刪功能。
string strQuery = "insert into student values(“01000061”,”20010005”,”張小明”,”男”,1982-01-01,”D053E238”);
SqlCommand command = new SqlCommand(strQuery,connString); //strQuery:命令字串;connString:連線字串
int logint=commnad.executNoQuery();
if (logint>0)
messagebox.show(“插入成功!”);
else
messagebox.show(“插入不成功!”);
三、DataSet 操作資料庫
DataSet 類是 ADO.NET 中最核心的成員之一,也是各種開發基於.Net 平臺程式語言開發資料庫應用程式最常接觸的類。在從資料庫完成資料抽取後,DataSet 就是資料的存放地,它是各種資料來源中的資料在計算機記憶體中對映成的快取, 所以在離線狀態下,也能對 DataSet 中的資料表進行操作。
1、建立一個 DataSet 物件
a) 可以指定一個數據集的名稱
b) 如果不指定名稱,則預設被設為"NewDataSet"
DataSet 資料集物件 = new DataSet("資料集的名稱字串");
2、使用 DataAdapter 物件填充資料集
(1)建立 SqlDataAdapter 物件
SqlDataAdapter 物件名 = new SqlDataAdapter(查詢用 sql 語句, 資料庫連線);
(2)填充 DataSet
DataAdapter 物件. Fill(資料集物件, "資料表名稱字串");
(3)具體例子
string cnnstring = "Data Source=HP;Initial Catalog=Xk;Integrated Security=True";
SqlConnection sqlcnn = new SqlConnection(cnnstring);
string SQLsting = "select * from student ";
da1 = new SqlDataAdapter(SQLsting, cnnstring);
ds1= new DataSet();
da1.Fill(ds1, "student");
注:sqlcnn 物件不需要 open 開啟,直接由 da1.Fill 方法填充。
3、DataSet 資料集資料的編輯(增刪改)
DataSet 資料集一般是與資料控制元件繫結使用,來達到顯示、修改、插入、刪除資料記錄。但只是對 DataSet 資料集做了插、刪、改。並沒有對資料庫中的資料進行插、刪、改,可以通過 DataAdapter 物件操作 DataSet 實現更新資料庫。
DataAdapter 是通過其 Update 方法實現以 DataSet 中資料來更新資料庫的。當 DataSet 例項中包含資料發生更改後,此時呼叫 Update 方法,DataAdapter 將分析已作出的更改並執行相應的命令(INSERT、UPDATE 或 DELETE),並以此命令來更新資料庫中的資料。如果 DataSet 中的 DataTable 是對映到單個數據庫表或從單個數據庫表生成,則可以利用 CommandBuilder 物件自動生成 DataAdapter 的 DeleteCommand、InsertCommand 和 UpdateCommand。
SqlCommandBuilder mycbd = new SqlCommandBuilder(da1); //自動生成插刪改命令
da1.Update(ds1.Tables["student"]);
但上述命令只對單表資料集更新方便,對多表資料集不能操作。對於多表資料集的插、刪、改操作,用 sqlcommand類來完成(見二、Sqlcommand 類操作資料庫。)
4、DataSet 結構
原文網址: