PDA

View Full Version : مبتدی: مشکل با SqlDataReader



azita90
چهارشنبه 26 شهریور 1393, 08:46 صبح
سلام دوستان.خواهش می کنم کمکم کنید.
من توی صفحه اصلی سایت که اسمش Default.aspx هست یه فرم لاگین گذاشتم.اینم کد دکمه ی لاگینه:
اما هیچ کدوم از دستورات response.redirect اجرا نمیشه.

protected void BtnLogin_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection();
con.ConnectionString = System.Configuration.ConfigurationManager.Connecti onStrings["NewsConnectionString"].ConnectionString;
con.Open();


SqlCommand cmd = new SqlCommand();
cmd.CommandType = System.Data.CommandType.Text;
cmd.CommandText = "select * from tblMember where MUserName= '"+TxtUserName.Text+"' and MPassword= '"+TxtPassword.Text+"' ";
cmd.Connection = con;


SqlDataReader dr;
dr = cmd.ExecuteReader();
if (dr.HasRows)
{
Session["login"] = 1;
dr.Read();
Session["id"]=dr["MemberID"];
if (dr["MType"].Equals(true))
{
Response.Redirect("adminPanel/AdminDefault.aspx");
}
else if (dr["MType"].Equals(false))
{
Response.Redirect("userPanel/UserDefault.aspx");
}
}


}

samira3
چهارشنبه 26 شهریور 1393, 09:30 صبح
سلام
يعني به ادرسUserDefault.aspx نمي رود
خوب اول مطمِئن بشين آدرس درست با باتن لينك تست كنيد
با اين روش هم مي شه
Response.Write("<script type='text/javascript'>window.open('Default.aspx','_self');</script>");

azita90
چهارشنبه 26 شهریور 1393, 09:43 صبح
سلام
يعني به ادرسUserDefault.aspx نمي رود
خوب اول مطمِئن بشين آدرس درست با باتن لينك تست كنيد
با اين روش هم مي شه
Response.Write("<script type='text/javascript'>window.open('Default.aspx','_self');</script>");
آدرس درسته. if اجرا نمیشه.درحالیکه توی جدول tblMember ردیف هایی دارم و توی فرم لاگین هم دقیقا همون ردیف ها رو وارد میکنم.اما dr انگار هیچ سطری نداره!

shahram hosseini
چهارشنبه 26 شهریور 1393, 09:53 صبح
آدرس دهی را به این صورت تغییر بده:

Response.Redirect("~/adminPanel/AdminDefault.aspx");

azita90
چهارشنبه 26 شهریور 1393, 10:06 صبح
آدرس دهی را به این صورت تغییر بده:

Response.Redirect("~/adminPanel/AdminDefault.aspx");
اینجوری نوشتم. اما درست نشد. فکر می کنم اشکال از dr هست. اما به ظاهرهیچ ایرادی وجود نداره!

if (dr["MType"].Equals(true))
{
Response.Redirect("~/adminPanel/AdminDefault.aspx");
}

nice_boy_a
چهارشنبه 26 شهریور 1393, 10:25 صبح
اینجوری نوشتم. اما درست نشد. فکر می کنم اشکال از dr هست. اما به ظاهرهیچ ایرادی وجود نداره!

if (dr["MType"].Equals(true))
{
Response.Redirect("~/adminPanel/AdminDefault.aspx");
}


با سلام.
دوست عزیز شرط های مختلف رو چک کن تا به جواب برسی ! :چشمک:


if (dr["MType"].ToString() == "True")

if (Convert.ToBool(dr["MType"].ToString()) == true)

if (dr["MType"].ToString() == "1")

ahmad156
چهارشنبه 26 شهریور 1393, 10:43 صبح
احتمالا مشکل از Query تون باید باشه.احتمالا رکوردی رو برنمیگردونه و اصلا وارد بدنه if اصلی تون نمیشه والا یکی از if های داخلی باید اجرا میشد

azita90
چهارشنبه 26 شهریور 1393, 10:45 صبح
با سلام.
دوست عزیز شرط های مختلف رو چک کن تا به جواب برسی ! :چشمک:


if (dr["MType"].ToString() == "True")

if (Convert.ToBool(dr["MType"].ToString()) == true)

if (dr["MType"].ToString() == "1")

نوع فیلد MType توی دیتابیسم ، bit هست. آخه عین همین کدها و کارها رو توی یه پروژه دیگه تست کردم و درست اجرا شد!:متفکر: این کد رو هم امتحان کردم ولی این ارور رو داد.

if (dr["MType"].ToString()=="true")
{
Response.Redirect("~/adminPanel/AdminDefault.aspx");
}


123591

azita90
چهارشنبه 26 شهریور 1393, 10:51 صبح
احتمالا مشکل از Query تون باید باشه.احتمالا رکوردی رو برنمیگردونه و اصلا وارد بدنه if اصلی تون نمیشه والا یکی از if های داخلی باید اجرا میشد
نظر من هم همینه!ولی چندبار کوئری و فیلدهای جدول tblMember رو چک کردم.همینه که کلافه ام کرده!:متفکر:

azita90
چهارشنبه 26 شهریور 1393, 11:03 صبح
یه چیز عجیب! وقتی این فرم لاگین رو توی صفحه اصلی سایت که اسمش Default.aspx هست میگذارم و اجرا می کنم، درست اجرا نمیشه. اما وقتی فرم لاگین رو توی یه صفحه دیگه (این صفحه هم همون جایی قرار گرفته که Default.aspx قرار گرفته.) میگذارم و اجرا می کنم درست اجرا میشه.

azita90
چهارشنبه 26 شهریور 1393, 12:48 عصر
مشکلم حل شد. توی attribiute های دکمه BtnLogin باید حتما رویداد onclick اش نوشته باشه. چون من کد ایجاد دکمه رو بصورت دستی نوشته بودم و اون رو از toolBox نیاورده بودم، این ویژگی نوشته نشده بود.

<asp:Button ID="BtnLogin" runat="server" Text="ورود" OnClick="BtnLogin_Click" />