• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    ADO.NET中的五個主要對象的詳細介紹與應用

    來源:懂視網 責編:小采 時間:2020-11-27 22:42:03
    文檔

    ADO.NET中的五個主要對象的詳細介紹與應用

    ADO.NET中的五個主要對象的詳細介紹與應用:首先看一個例子 配置文件 代碼如下:<configuration> <connectionStrings> <add name=connStr connectionString=Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\SS.mdf;
    推薦度:
    導讀ADO.NET中的五個主要對象的詳細介紹與應用:首先看一個例子 配置文件 代碼如下:<configuration> <connectionStrings> <add name=connStr connectionString=Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\SS.mdf;

    首先看一個例子
    配置文件
    代碼如下:

    <configuration>
    <connectionStrings>
    <add name=connStr" connectionString="Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\SS.mdf;Integrated Security=true;User Instance=True"/>
    </connectionStrings>
    </configuration>

    代碼
    代碼如下:

    string strconn = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString; //從配置文件中讀取連接字符串
    using (SqlConnection conn = new SqlConnection(strconn)) //創建連接對象,出了using范圍,連接自動關閉,對象自動銷毀
    {
    conn.Open();//打開連接
    using (SqlCommand cmd = conn.CreateCommand()) //創建命令對象
    {
    cmd.CommandText = "select * from T_Persons";//命令內容
    DataSet dataset = new DataSet(); //創建一個數據集,相當于一個數據容器
    SqlDataAdapter adapter = new SqlDataAdapter(cmd); //創建一個適配器
    adapter.Fill(dataset); //將查詢結果填充到數據集中
    DataTable datatable = dataset.Tables[0]; //將查詢到的一張表保存在DataTable對象中
    for (int i = 0; i < datatable.Rows.Count;i++ )//遍歷
    {
    DataRow row = datatable.Rows[i];//取得一行對象
    string name=row["F_Name"].ToString();//取得該行對應列的值
    MessageBox.Show(name);
    }
    }
    }

    對象解析
    代碼如下:

    Connection:
    和數據庫交互,必須連接它。連接幫助指明數據庫服務器、數據庫名字、用戶名、密碼,和連接數據庫所需要的其它參數。Connection對象會被Command對象使用,這樣就能夠知道是在哪個數據源上面執行命令。
    Command:
    主要可以用來對數據庫發出一些指令,例如可以對數據庫下達查詢、新增、修改、刪除數據等指令,以及呼叫存在數據庫中的預存程序等。這個對象是架構在Connection 對象上,也就是Command 對象是透過連結到數據源。
    DataAdapter:
    主要是在數據源以及DataSet 之間執行數據傳輸的工作,它可以透過Command 對象下達命令后,并將取得的數據放入DataSet 對象中。這個對象是架構在Command對象上,并提供了許多配合DataSet 使用的功能。
    DataSet:
    這個對象可以視為一個暫存區(Cache),可以把從數據庫中所查詢到的數據保留起來,甚至可以將整個數據庫顯示出來。DataSet 的能力不只是可以儲存多個Table 而已,還可以透過DataAdapter對象取得一些例如主鍵等的數據表結構,并可以記錄數據表間的關聯。DataSet 對象可以說是ADO.NET 中重量級的對象,這個對象架構在DataAdapter對象上,本身不具備和數據源溝通的能力;也就是說我們是將DataAdapter對象當做DataSet 對象以及數據源間傳輸數據的橋梁。
    DataReader:
    當我們只需要循序的讀取數據而不需要其它操作時,可以使用DataReader 對象。DataReader對象只是一次一筆向下循序的讀取數據源中的數據,而且這些數據是只讀的,并不允許作其它的操作。因為DataReader 在讀取數據的時候限制了每次只讀取一筆,而且只能只讀,所以使用起來不但節省資源而且效率很好。使用DataReader 對象除了效率較好之外,因為不用把數據全部傳回,故可以降低網絡的負載。ADO.NET 使用Connection 對象來連接數據庫,使用Command 或DataAdapter對象來執行SQL語句,并將執行的結果返回給DataReader 或 DataAdapter ,然后再使用取得的DataReader 或DataAdapter 對象操作數據結果。

    強類型 DataSet(ADO.NET中的重頭戲)
    使用方法:在項目上右擊-添加-新建項-數據集,然后將表從服務器資源管理器拖放到DataSet中。注意拖放過程是自動根據表結構生成強類型DataSet等類,沒有把數據托過來,程序還是連得那個數據庫,自動將數據庫連接字符串寫在了配置文件中。

    定義表的時候必須要有主鍵(表名:T_Persons)
    代碼如下:


    T_PersonsTableAdapter adapter = new T_PersonsTableAdapter();//首先生成一個適配器
    DataSet演示.DataSet1.T_PersonsDataTable datatable = adapter.GetData();//講返回結果用T_PersonsDataTable類型接收
    for (int i = 0; i < datatable.Count;i++ )//遍歷表中的每一行
    {
    DataSet演示.DataSet1.T_PersonsRow row = datatable[i];//每一行放入一個T_PersonsRow中
    MessageBox.Show("姓名是:"+row.F_Name+"年齡是:"+row.F_Age);//取出數據(像使用屬性一樣)
    }

    強類型DataSet的更新
    代碼如下:

    T_PersonsTableAdapter adapter = new T_PersonsTableAdapter();
    DataSet演示.DataSet1.T_PersonsDataTable datatable = adapter.GetData();//取出查詢結果放入表中
    DataSet演示.DataSet1.T_PersonsRow row = datatable[0];//取表的第一行
    row.F_Name = "newName";//修改第一行數據的名字字段
    int i = adapter.Update(datatable);
    if (i > 0)
    {
    MessageBox.Show("修改成功");
    }
    else
    {
    MessageBox.Show("修改失敗");
    }

    數據庫中的表未增加字段:右鍵數據集→配置
    增加字段:右鍵數據集→配置→查詢分析器
    插入新行:
    代碼如下:

    T_PersonsTableAdapter adapter = new T_PersonsTableAdapter();
    int i = adapter.Insert("吉思靜", 22);
    if (i > 0)
    {
    MessageBox.Show("插入成功");
    }
    else
    {
    MessageBox.Show("插入失敗");
    }

    空值處理
    代碼如下:

    if(row.IsF_NameNull())//判斷數據庫中的該字段對應的值是否為空(這是一個方法,直接調用)
    {
    MessageBox.Show("數據為空");
    }

    強類型DataSet添加自定義SQL語句
    代碼如下:

    右鍵數據集→添加→Query
    查詢SQL語句
    SELECT * FROM dbo.T_Persons
    where F_Age>20
    調用該方法:
    T_PersonsTableAdapter adapter = new T_PersonsTableAdapter();
    DataSet演示.DataSet1.T_PersonsDataTable datatable = adapter.GetDataOlder();
    查詢SQL語句(帶參數)
    SELECT * FROM dbo.T_Persons
    where F_Age>@Age
    調用該方法:
    T_PersonsTableAdapter adapter = new T_PersonsTableAdapter();
    DataSet演示.DataSet1.T_PersonsDataTable datatable = adapter.GetDataByAge(20);
    刪除SQL語句(帶參數)
    DELETE FROM T_Persons
    WHERE (F_Name = @Name)
    調用該方法:
    T_PersonsTableAdapter adapter = new T_PersonsTableAdapter();
    int i = adapter.DeleteByName("李正興");//成功刪除返回1否則返回0

    優化強類型DataSet批量處理
    (1)插入3000條數據未優化用時
    代碼如下:

    Stopwatch sw = new Stopwatch();
    sw.Start();//打開時鐘
    T_testTableAdapter adapter = new T_testTableAdapter();
    for(int i=0;i<3000;i++)//計算插入3000條數據的用時
    {
    adapter.Insert(i.ToString(), i);
    }
    sw.Stop();
    MessageBox.Show(sw.Elapsed.ToString());

    (2)插入3000條數據優化后用時
    代碼如下:

    Stopwatch sw = new Stopwatch();
    sw.Start();//打開時鐘
    T_testTableAdapter adapter = new T_testTableAdapter();
    adapter.Connection.Open();//打開連接
    for(int i=0;i<3000;i++)//計算插入3000條數據的用時
    {
    adapter.Insert(i.ToString(), i);
    }
    adapter.Connection.Close();//關閉連接
    sw.Stop();
    MessageBox.Show(sw.Elapsed.ToString());

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    ADO.NET中的五個主要對象的詳細介紹與應用

    ADO.NET中的五個主要對象的詳細介紹與應用:首先看一個例子 配置文件 代碼如下:<configuration> <connectionStrings> <add name=connStr connectionString=Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\SS.mdf;
    推薦度:
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 亚洲中文字幕久久精品无码喷水 | 日韩欧精品无码视频无删节| 99re6这里有精品热视频| 国产精品一区二区久久精品无码 | 亚洲精品无码MV在线观看| 国产精品自产拍在线18禁| 大伊香蕉精品一区视频在线 | 国产成人亚洲合集青青草原精品 | 思思久久99热免费精品6| 99熟女精品视频一区二区三区| 国产欧美精品一区二区三区| 亚洲欧美日韩国产精品影院| 精品久久久久久99人妻| 97精品伊人久久久大香线蕉| 97精品人妻系列无码人妻 | 国产香蕉国产精品偷在线观看| 91精品国产福利尤物| 久久精品无码一区二区无码| 亚洲人成电影网站国产精品| 久久国产热这里只有精品| 国产精品国产三级在线高清观看| 青青青青久久精品国产| 国产精品久久国产精品99盘| 国产精品无码专区| 精品久久人妻av中文字幕| 亚洲精品~无码抽插| 亚洲精品国产福利一二区| 欧美日韩国产中文精品字幕自在自线 | 91久久精品91久久性色| 精品国产a∨无码一区二区三区| 久久免费的精品国产V∧| 少妇精品无码一区二区三区| 亚洲av午夜成人片精品网站| 曰韩精品无码一区二区三区| 亚洲午夜成人精品电影在线观看 | 久久久久久久久无码精品亚洲日韩 | 国产亚洲精品拍拍拍拍拍| 国产精品99精品视频网站| 国产A∨国片精品一区二区| 亚洲精品线在线观看| 尤物国产在线精品福利一区|