林這個代碼做顯示圖像編輯值:比較數據集使用
protected void Repeater_Outer_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
RepeaterItem item = e.Item;
if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
{
Repeater Inner = (Repeater)item.FindControl("image_Repeater");
HiddenField Inner_Id = (HiddenField)item.FindControl("HiddenField_Id");
MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["dbcnx"].ToString());
MySqlCommand cmdNew = new MySqlCommand();
cmdNew.Connection = conn;
cmdNew.Parameters.AddWithValue("@id", Inner_Id.Value);
cmdNew.CommandText = "SELECT * FROM images WHERE FK_album = @id";
conn.Open();
Inner.DataSource = cmdNew.ExecuteReader();
Inner.DataBind();
Label Label_Amount = (Label)item.FindControl("Label_Amount");
Label_Amount.Text = Convert.ToString(Inner.Items.Count);
conn.Close();
}
}
我的問題是,每一個轉發器運行它連接到這使得網頁需要很長加載數據庫(如10倍秒) 所以我想填充一個數據集或一個通用List到數據綁定。我已經試過這樣:
protected static List<string> dataSetImages(){
MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["dbcnx"].ToString());
string sql = "select * from images";
MySqlCommand cmd = new MySqlCommand(sql, conn);
conn.Open();
MySqlDataAdapter sqlDataAdapter = new MySqlDataAdapter(cmd);
DataSet dataSet = new DataSet();
sqlDataAdapter.Fill(dataSet);
conn.Close();
List<string> imageList = new List<string>();
for (int i = 0; i <= dataSet.Tables[0].Rows.Count - 1; i++)
{
string id = dataSet.Tables[0].Rows[i].ItemArray[0].ToString();
string img_name = dataSet.Tables[0].Rows[i].ItemArray[1].ToString();
string img_alt = dataSet.Tables[0].Rows[i].ItemArray[2].ToString();
string FK_album = dataSet.Tables[0].Rows[i].ItemArray[3].ToString();
imageList.Add(id);
imageList.Add(img_name);
imageList.Add(img_alt);
imageList.Add(FK_album);
}
return imageList;
}
如何我可以用這個和比較FK_album到Inner_Id.Value?
非常感謝你這個詳細的答案,它的作品就像一個魅力。你最好的:D – Mindfull