一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

ExecuteReader的用法

 聽(tīng)風(fēng)的歌00 2011-11-19
ExecuteReader的用法
2011-06-28 16:26

最近在做winform的編程,想到一真沒(méi)有使用過(guò)ExecuteReader??赡芤郧耙院笏挠脩舨淮螅蛘?/SPAN>

不大好用,故沒(méi)有用過(guò)。今天在這里將學(xué)習(xí)記錄寫(xiě)下來(lái),供讀者參考:

1、MSDN上說(shuō):Sends the CommandText to the Connection and builds a SqlDataReader.

                  (這句話就不翻譯了)

2、實(shí)例片段:

 [C#]
public void CreateMySqlDataReader(string mySelectQuery, SqlConnection myConnection)
{

string sql;//sql語(yǔ)句
    SqlCommand myCommand = new SqlCommand(sql, myConnection);
    myConnection.Open();
    SqlDataReader myReader;
    myReader = myCommand.ExecuteReader();
    try
    {
      while(myReader.Read())
      {
        Console.WriteLine(myReader.GetString(0));
      }
    }
    finally
    {
      myReader.Close();
      myConnection.Close();
    }
}


3、下面說(shuō)說(shuō)它的用法:

①:

用法:ExecuteReader 方法存在的目的只有一個(gè):盡可能快地對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢并得到結(jié)果。ExecuteReader 返回一個(gè)                 DataReader對(duì)象:如果在SqlCommand對(duì)象中調(diào)用,則返回SqlDataReader;如果在OleDbCommand對(duì)象中調(diào)用,返回的是OleDbDataReader??梢哉{(diào)用DataReader的方法和屬性迭代處理結(jié)果集。它是一個(gè)快速枚舉數(shù)據(jù)庫(kù)查詢結(jié)果的機(jī)制,是只讀、只進(jìn)的。對(duì)SqlDataReader.Read的每次調(diào)用都會(huì)從結(jié)果集中返回一行。

②:

這是出自我平時(shí)所用的時(shí)候的一些認(rèn)識(shí):那就是如果我們?cè)谶M(jìn)行數(shù)據(jù)操作時(shí),如果沒(méi)有數(shù)據(jù)可操作,那么我們只能使用ExecuteReader()這個(gè)CMD,而executeNoeQuery()與Executescalar()如果在沒(méi)有數(shù)據(jù)的時(shí)候使用時(shí),就會(huì)出錯(cuò)“對(duì)像沒(méi)有實(shí)例化”的錯(cuò)誤。所以我們?cè)谂袛嗍欠裼袛?shù)據(jù)時(shí),只可以用ExecuteReader()中的REad()方法來(lái)檢測(cè)。

④:

DataReader還有一個(gè)GetValue方法可以用來(lái)檢索字段的值。GetValue返回一個(gè)一般性的Object,但是被無(wú)數(shù)個(gè)返回強(qiáng)類型的Get方法補(bǔ)充,比如GetInt32和GetDecimal(參考MSDN2005)。對(duì)GetOrdinal的調(diào)用是必須的,因?yàn)镚etDecimal只接受整型索引。GetOrdinal所做的工作正好與GetName相反——它把字段名轉(zhuǎn)換成數(shù)字索引。

注意:DataReader必須處理Close方法。

using System.Data.SqlClient;

...

SqlConnection conn = new SqlConnection(@"server=ws7\leosql;database=AdventureWorks;uid=sa;pwd=lixiang@");

try

{

conn.Open();

SqlCommand cmd = new SqlCommand("SELECT * FROM titles WHERE advance != 0", conn);

SqlDataReader reader = cmd.ExecuteReader();

int index = reader.GetOrdinal("advance");

while(reader.Read())

   Console.WriteLine("{0:c}", reader.GetDecimal(index));

   =================================

   -- Console.WriteLine(reader.GetName(0));

   =================================

''reader.Close();''

}

catch(SqlException ex)

{

Console.WriteLine(ex.Message);

}

finally

{

========================================================

-- 可以配置DataReader,使它真的可以關(guān)閉一個(gè)底層連接

-- reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);

========================================================

conn.Close();

}

⑤:

現(xiàn)在來(lái)強(qiáng)調(diào)下:現(xiàn)在來(lái)說(shuō)下ExecuteReader的read()方法,它就是讀取一個(gè)表的記錄,即執(zhí)行讀,每次調(diào)用都是返回一行的結(jié)果集。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    国产亚洲欧美自拍中文自拍| 亚洲中文字幕视频一区二区| 国产老熟女乱子人伦视频| 国产大屁股喷水在线观看视频| 成年午夜在线免费视频| 91久久精品在这里色伊人| 国产成人免费高潮激情电| 久久精品伊人一区二区| 国产又黄又猛又粗又爽的片| 中文字幕精品一区二区三| 久久99热成人网不卡| 免费一区二区三区少妇| 黄色片一区二区三区高清| 国产肥妇一区二区熟女精品| 亚洲精品一区三区三区| 欧美乱视频一区二区三区| 一区二区三区18禁看| 亚洲熟女诱惑一区二区| 厕所偷拍一区二区三区视频| 在线免费看国产精品黄片| 日韩人妻中文字幕精品| 日韩人妻中文字幕精品| 五月婷婷六月丁香在线观看| 亚洲精品国产主播一区| 好骚国产99在线中文| 久久久精品区二区三区| 欧美成人黄色一级视频| 欧美中文日韩一区久久| 久久99精品国产麻豆婷婷洗澡 | 免费观看日韩一级黄色大片| 国产91人妻精品一区二区三区| 国产一区二区三区色噜噜| 日韩成人h视频在线观看| 欧美日韩精品久久第一页| 国内真实露脸偷拍视频| 日韩精品综合福利在线观看| 日韩国产中文在线视频| 亚洲欧洲一区二区综合精品| 欧美日韩精品综合在线| 亚洲黄香蕉视频免费看| 在线九月婷婷丁香伊人|