[英]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.