C#-Database-連接


using System.Data;
using System.Data.SqlClient;
//先打開兩個類庫文件
SqlConnection con = new SqlConnection();

con.ConnectionString = "server=.;database=stu;uid=sa;pwd=sa";

 

連接字符串,也可以

con.ConnectionString = ConfigurationManager.ConnectionStrings["xxx"].ConnectionString;

 

配合在web.config中配置實現

<ConnectionStrings>

<add name="xxx"

connectionString="Data Source=000.000.000.000;Initial Catalog=xxx;User ID=xxx;Password=xxx; pooling=true;"
providerName="System.Data.SqlClient"/>

<ConnectionStrings>

然后打開連接

con.Open();

接下來根據操作不同SqlDataAdapter和SqlCommand二選其一

ado.net數據訪問有兩種方式:

1.離線--通過DataSet,然后離線增,刪,改,最后通過SqlDataAdapter解 析到數據庫中

DataSet是離線的,而SqlDataAdapter是連接DataSet和數據庫的橋梁,所有對DataSet的操作(填充,更新等)都要通過他。

即SqlDataAdapter+DataSet訪問數據庫

2.直接對數據庫操作SqlCommand (Update,Insert,Delete)

二者之間的詳細區分如下:

 

SqlCommand是命令,可以用它來執行SQL命令

SqlDataAdapter是數據適配器,是用於在數據源(數據庫)和數據集(DataSet)之間通訊的一組對象

SqlCommand對應DateReader

SqlDataAdapter對應DataSet

SqlCommand是C#中與Sql數據庫打交道的對象,幾乎所有的Sql數據庫操作都需要使用該對象來實現,但其功能有限,只是簡單的實現了與Sql數據庫的接口而已;

SqlDataAdapter是一個功能強大的SqL數據適配器,也用於操作Sql數據庫,但它的操作都要通過SqlCommand來實現(有一個屬性對象的類型就是SqlCommand),也就是說,可以把SqlDataAdapter看作是一個把一些特殊功能封裝了、增強了的SqlCommand

SqlCommand與ADO時代的Command一樣,SqlDataAdapter則是ADO.NET中的新事物,它配合DataSet來使用。

DataSet就像是駐留在內存中的小數據庫,在DataSet中可以有多張DataTable,這些DataTable之間可以相互關聯,就像在數據庫中表關聯一樣

SqlDataAdapter的作用就是將數據從數據庫中提取出來,放在DataSet中,當DataSet中的數據發生變化時,SqlDataAdapter再將數據庫中的數據更新,以保證數據庫中的數據和DataSet中的數據是一致的

如果只需要執行SQL語句,就沒必要用到DataAdapter ,直接用SqlCommand的Execute系列方法就可以了。

sqlDataadapter的作用是實現Dataset和DataBase之間的橋梁:比如將對DataSet的修改更新到數據庫。 SqlDataAdapter的UpdateCommand的執行機制是:
當調用SqlDataAdapter.Update()時,檢查DataSet中的所有行,然后對每一個修改過的Row執行SqlDataAdapter.UpdateCommand
也就是說如果未修改DataSet中的數據,SqlDataAdapter.UpdateCommand不會執行。

 

例如使用SqlDataAdapter 對象,一般就要用於填充DataSet:

 con.Open();
 DataSet ds = new DataSet();
 try
        {
            SqlCommand cmd = new SqlCommand(sql, Connection);
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            sda.Fill(ds);
        }
        catch (Exception e)
        {

        }
        finally
        {
            con.Close();
        }

例如SqlDataReader 對象, 用於執行對數據庫的直接一次性操作

using (SqlConnection con = new SqlConnection(s))
using (SqlCommand command = new SqlCommand("select * from xxx", con))
        {
            con.Open();
            command.Parameters.Add("@u", SqlDbType.Char).Value = uuu;
            SqlDataReader reader = command.ExecuteReader();
            while(reader.Read())
            {
              Console.WriteLine(reader["字段名"].toString());
              .......            
            }
        }        

最后關閉連接

con.Close();

 


免責聲明!

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



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