1. 程式人生 > >C#對 SQL 資料庫操作彙總(轉載自xiaoxiyou)

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 類的常用構造方法有下面三種,使用不同的構造方法,建立物件的內容也有所不同。

Command類建構函式
構造方法 說明
SqlCommand() 不帶引數的建構函式
SqlCommand(string commandText) 帶命令字串的建構函式
SqlCommand(string commandText,SqlConnection mySqlConnection) 帶命令字串及連線字串的建構函式

(2)command 類的主要成員

Command類的屬性
屬 性  說 明
Connection Command 物件使用的資料庫連線
CommandType  設 置 如 何 解 釋 CommandText 值 ( 即 設 置 CommandText 所 代 表 的 含 義 )。 有 三 個 選 項(StoredProcedure 儲存過程名,TableDirect 表名,Text SQL 文字命令),預設為 Text
CommandText  執行的 SQL 語句
Command類的方法
方法  說明
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 結構

原文網址: