C#對 SQL 數據庫操作總結


                                                  C#對 SQL 數據庫操作總結

       要對數據庫進行增刪查改操作,先要連接數據庫,然后通過 command 類中相應方法或 Dataset 數據集中相應方法來
完成對數據庫的有關操作

一、創建數據庫連接(SqlConnection 類)

步驟:(1)定義連接字符串

         (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.創建連接例子:

     string connString = "Data Source=HP;Initial Catalog=Xk;Integrated Security=True";     //windows用戶  連接數據庫字符串

     SqlConnection conn = new SqlConnection(connString);                                                //帶連接字符串  實例化SqlConnection

     conn.open();

二、Sqlcommand 類操作數據庫

使用 Command 步驟:

(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.下面舉一些例子,學習過程中要舉一返三

(1)SqlCommand()構造函數、ExecuteScalar 方法,查詢學生人數

1. string connString = "Data Source=HP;Initial Catalog=Xk;Integrated Security=True";    //windows用戶  連接數據庫字串

2. SqlConnection conn = new SqlConnection(connString);                //帶連接字符串實例化 SqlConnection

3.conn.open();

4.string SQLstring = "SELECT count(*) from Student";

5.SqlCommand command = new SqlCommand();                             //創建 command 對象,SqlCommand() 不帶參數的構造函數

6.command.Connection = conn;

7.command.CommandText = SQLstring;                                         //將SQLstring賦給CommandText;

8.int num = (int)command.ExecuteScalar();                                   //執行 SQLsrting 查詢語句,返回學生人數,注意要進行數據轉換

 

      1、2、3:創建數據庫連接;   4:定義 SQL 語句;  5、6、7:創建 Command 對象   8:執行命令

 

(2) 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(); 

(3) 使用 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 打開,直接由 da1Fill 方法填充。

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 結構

 


   


  




 

 


   
 
 
 
 

 
 

 
 
 
 


 







 
 
 

                  
          
              
              
              
             

 


免責聲明!

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



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