.net數據庫操作


  剛接觸到數據庫時總是被數據庫中的一些基本概念,比如Connection、Command、DataReader等,給整的糊里糊塗。如今,對數據庫的基本操作有了一定的認識,特此做出總結,以便后續工作中查閱。

  Microsoft公司提供了幾種常見的數據源操作:Sql server數據庫,OLEDB數據源,ODBC數據源,Oracle數據庫,而針對它們的一些常規操作可以說是大同小異,本文借以對Sql server數據庫的操作進行Connection、Command、DataSet、DataAdapter、DataReader的介紹。

 

SqlConnection:

Sqlconnection是對象用來連接sql server數據庫的,程序員對數據庫的一切操作都是建立在數據庫已經連通的基礎上,因此對它有必要做一些基本的了解。

SqlConnection的基本語法是(拿一個連接的語句):Data Source=192.168.100.46;Initial Catalog=database;User ID=sa;Password=sa

而在實際的操作過程中經常把它放到配置文件中,以便后續進行更改,當然也可以把其基本項放到前台界面填寫操作。

放在配置文件中,參考代碼:

<?xml version="1.0"?>
<configuration>
  <appSettings>
    <add key="ConnectionString" value="Data Source=192.168.100.46;Initial Catalog=database;User ID=sa;Password=sa"/>
    </appSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>

一句話:SqlConnection是對象連接數據庫的。

 

SqlCommand:

在對象和數據庫建立連接后,可以使用Command對象對數據庫進行增、刪、改、查等基本操作,操作實現方式可以是使用sql語句進行,也可以是使用存儲過程。下面簡單介紹Command對象的常用屬性及其方法。

常用屬性:

CommandType:獲取或設置Command對象要執行命令的類型

CommandText:獲取或設置要對數據源執行的SQL語句、存儲過程或表名

CommandTimeOut:獲取或設置在終止對執行命令的嘗試並生成錯誤之前的等待時間

Connection:獲取或設置此Command對象使用的Connection對象的名稱

Parameters:獲取Command對象要使用的參數集合。

常用方法:

ExecuteNonQuery:執行sql語句並返回受影響的行數

ExecuteReader:執行返回數據集的select語句

ExecuteScalar:執行查詢,並返回查詢所返回的結果集中第一行第一列

一句話:SqlCommand是需要對數據庫做出改變或調整時使用的,使用后(除查詢)數據庫會有變化。

 

DataSet:

DataSet是數據庫操作過程中的核心對象,支持斷開式、分布式數據方案的核心對象。DataSet對象是創建在內存中的集合對象,它可以包含任意數量的數據表,以及所有的表的約束、索引、和關系,就相當於一個小型關系的數據庫。而一個dataset對象包含一組DataTable對象,這些對象可以與數據相關聯,其中每個dataTable對象都是由DataColumn和DataRow對象組成的。

對DataSet的常見操作:

以編程方式在DataSet中創建dataTable、DataRelation、Constraint,並使用數據填充表

通過DataAdapter填充dataSet

使用XML加載和保持DataSet內容

一句話:DataSet是一個保存數據的小型數據庫,支持斷開數據庫連接后的操作。

 

 DataAdapter:

DataAdapter對象是DataSet對象和數據源之間聯系的橋梁,主要是從數據源中檢索數據、填充DataSet對象中的表或者把用戶對DataSet做出的更改寫入到數據庫中。

常用屬性:

selectCommand:獲取或設置用於在數據源中選擇記錄的命令

InsertCommand:獲取或設置用於將新的記錄插入到數據庫中命令

UpdateCommand:獲取或設置用於更新數據源中記錄的命令

DeleteCommand:獲取或設置用於從數據集中刪除記錄的命令

常用方法:

Fill:從數據源中提取數據以填充數據集

Update:更新數據源

一句話:DataAdapter對用於連接dataSet和數據源的。

 

DataReader:

DataReader是一個簡單的數據集,用於從數據源中檢索只讀數據集,常用於檢索大量數據。DataReader每次讀取數據時只在內存中保留一行記錄,開銷非常小。

可以從Command對象的ExecuteReader方法從數據源中檢索數據來創建DataReader對象。如:SqlDataReader sdr = cmd.ExecuteReader()

常用方法:

FieldCount:獲取當前行的列數

RecordsAffectde:獲取執行SQL語句所更改、添加或刪除的行數

常用方法:

Read:使用DataReader對象前進到下一條記錄

Close:關閉DataReader對象

Get:用來讀取數據集的當前行的某一列記錄

一句話:DataReader每次讀取數據源時在內存中保留一行記錄。

 

綜合運用:


在實際項目開發中使用三層架構操作數據庫,而最底層直接操作數據庫會將上述所講的一些基本概念綜合運用,這里選擇最常用到的兩個方法以供參考:

connectionString:數據庫連接語句

SQLString:sql語句

 

//執行查詢語句,返回dataset

public static DataSet Query(string strSql)
        {
            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                DataSet ds = new DataSet();

                try
                {
                    conn.Open();
                    SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(strSql, conn);
                    sqlDataAdapter.Fill(ds, "ds");
                }
                catch (SqlException ex)
                {
                    throw new Exception(ex.Message);
                }

                return ds;
            }
        }

 

//執行sql語句,返回影響的記錄數

public static int ExecuteSql(string strSql)
        {
            using (SqlConnection conn = new SqlConnection(connectionString))
            {
                using (SqlCommand cmd = new SqlCommand(strSql, conn))
                {
                    try
                    {
                        conn.Open();
                        int rows = cmd.ExecuteNonQuery();
                        return rows;
                    }
                    catch (SqlException ex)
                    {
                        conn.Close();
                        throw new Exception(ex.Message);
                    }
                }
            }
        }

 

總結:先介紹到此處,后續如果對此有更深層的理解,再行補充。


免責聲明!

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



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