作者aaron7713 (HI~~~)
看板C_Sharp
標題[問題]ASP.net 取資料庫值的問題..
時間Sun Jul 25 11:21:46 2010
請問..
我要將 資料庫取出來的值 指定給session變數
但是取值的時候,一直發生IndexOutOfRangeException錯誤
爬文找了很多ExecuteReader的使用方法
不知道我的寫法是哪裡錯誤..請各位大大幫忙看一下
以下為程式碼
SqlConnection dbcon;
SqlCommand dbcmd;
SqlDataReader dbdr;
string strdbcon, strsql;
//textuser_id 用來輸入 會員帳號
//textuser_pwd 會員密碼
strsql = "select user_id from 會員資料 where user_id =" +
"'"+textuser_id.Text+"'"+ " and "+
"password =" +"'"+ textuser_pwd.Text+"'";
dbcmd = new SqlCommand(strsql, dbcon);
dbdr = dbcmd.ExecuteReader();
dbdr.Read();
if (dbdr.HasRows)
{
/* 這裡一直出現問題
id是資料表的主鍵
我試了 Session["id"]= dbdr["id"]; 結果發生錯誤
用dbdr.GetString(0); 取出來卻是 欄位user_id的值 (會員帳號)
而dbdr.GetString(1)~(N) 都是出現 IndexOutOfRangeException錯誤
用dbdr["user_id"] 也是一樣的錯誤訊息..
*/
Session["id"] = dbdr.GetString(0);
Session["user_id"] = dbdr.GetString(3);
Session["password"] = dbdr.GetString(4);
Response.Write("<script> alert('登入成功')</script>");
dbcon.Close();
}
else
{
Response.Write("<script> alert('帳號或密碼錯誤')</script>");
}
請各位高手解惑,謝謝!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.44.19.36
※ 編輯: aaron7713 來自: 114.44.19.36 (07/25 11:27)
1F:→ ssccg:你select user_id,結果裡面當然只有user_id ... 07/25 11:26
2F:→ aaron7713:囧!!! 原來如此 我一直在想是不是reader寫錯..忽略selec 07/25 11:29
3F:→ aaron7713:t 謝謝 查了好久 哈哈哈哈 07/25 11:29