簡體   English   中英

您可以多次使用 sqlDataReader 嗎?

[英]Can you use the sqlDataReader more than once?

我有一個問題,我想我已經知道答案是; 您可以多次使用 sqlDataReader 嗎?

我有一個我運行的查詢,它的輸出當前綁定到一個中繼器。 我得到了預期的結果,一切都運行良好。 我現在面臨的挑戰是我想使用相同的結果,但不是將它們列在中繼器中,而是希望它們加載到 DropDownList 中。 我已經嘗試“連續”兩次使用 sqlDataReader,但我猜一旦 Reader 結束,就沒有什么可以填充 DDL 了?

這是不起作用的代碼。

sqlCmd = new SqlCommand("SELECT CountryName From CountryList");
sqlCmd.CommandType = System.Data.CommandType.Text;
sqlCmd.Connection = myConnection;
sqlReader = sqlCmd.ExecuteReader();
if (sqlReader.HasRows)
{
    RepeaterCountries.DataSource = sqlReader;
        RepeaterCountries.DataBind();

        DDLCountry.DataSource = sqlReader;
        DDLCountry.DataTextField = "CountryName";
        DDLCountry.DataValueField = "CountryName";
        DDLCountry.DataBind();
}

有沒有一種方法可以實現這一點,我不必再次對數據庫運行另一個查詢? 關於將結果放入數組或類似的東西是否可行的任何建議?

你不能。

數據讀取器是 TDS 協議的一個小包裝,這是從服務器發送的僅轉發數據集。

數據讀取器不保留數據的副本,並且sql server 不允許重置數據集(這也是不記得的),因此您不能直接將數據移回。

您要么必須在內部進行緩沖,要么必須再次發送 sql。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM