推 qwer820404:那就在後端進行判斷 但是Datareader是無法取得資料數 04/16 20:44
→ qwer820404:如果你是用gridview建議就用datatable比較適合吧 04/16 20:45
→ qwer820404:DataTable.Rows.Count 可以取得資料列數目 04/16 20:46
→ qwer820404:>1 就導向修改頁面 導向方式有很多種 04/16 20:46
→ qwer820404:看你的需求 可以用javascript導 也可用Response的 04/16 20:47
→ qwer820404:帶資料也有很多種 Cookie 或Session 或Url Parameter 04/16 20:47
→ qwer820404:記得編碼(中文字) 跟 安全性的問題囉 04/16 20:47
後來修改成下面那樣
不過會出現 Invalid Attempt To Call MetaData When Reader Is Closed
不知道是哪邊有問題??
DataTable dt = new DataTable();
using(IntraDB DB = new IntraDB())
{
using(IDataReader dr =DB.ClientInfoSearch(1, txtSearch.Text))
{
dt.Load(dr);
if (dt.Rows.Count == 1)
{
Response.Redirect("ClientsModify.aspx?CID="+dr["CID"].ToString());
這句出現Invalid attempt to call MetaData when reader is closed.
gdvSearch.DataSource = dt;
gdvSearch.DataBind();
}
else
{
gdvSearch.DataSource = dt;
gdvSearch.DataBind();
}
※ 編輯: KSCIECS 來自: 219.80.253.185 (04/17 12:00)
推 qwer820404:哦 執行順序的問題 04/17 21:07
→ qwer820404:在用Response.Redirect這種導向的時候要注意 04/17 21:07
→ qwer820404:他之後的程式碼都會失效 因為他是"直接轉向" 04/17 21:08
→ qwer820404:那個錯誤是說 你的datareader 的連接被關掉了 04/17 21:08
→ qwer820404:所以dr["CID"]會跑error出來 兇手就是redirect把他斷了 04/17 21:09
→ qwer820404:建議可以改成註冊javascript到前端 導向會比較好 04/17 21:10
→ ssccg:dt.Load(dr)之後就把dr關了啊,你為什麼不從dt讀要從dr讀? 04/18 10:48
→ ssccg:改成dt.Rows[0]["CID"]就可以了吧? 04/18 10:50
→ ssccg:還有都redirect了下面兩行bind沒用了吧 04/18 10:50