问题描述
我做了一个分数查询的网站,网站很简单,输入学号和身份证号,如果匹配,那么就显示这个学生的成绩,显示成绩是用gridview显示。做好后发布到iis,在本机上能够正常显示学生成绩。但是如果远程访问网站,输入学号和身份证号后就没有反应,过一会就出现无法访问该网页,请问这是怎么回事啊?
解决方案
解决方案二:
问题补充一下,确定按钮按下的代码是这样:if(TextBox1.Text.Trim()==String.Empty){Label5.Text="请输入学号";}else{stringconnectionString="DataSource=(local);InitialCatalog=CESHI;UserID=sa;Password=123";stringuid=TextBox1.Text;stringpwd=TextBox2.Text;boolflag=false;SqlConnectioncon=newSqlConnection(connectionString);SqlDataAdapteradp=newSqlDataAdapter("select*from学生",con);DataSetds=newDataSet();adp.Fill(ds);foreach(DataRowdrinds.Tables[0].Rows){stringcardid=dr["学号"].ToString();stringpassword=dr["身份证号"].ToString();if(uid==cardid&&pwd==password){flag=true;Label4.Text=dr["姓名"].ToString();break;}}if(flag==true){TextBox1.Visible=false;TextBox2.Visible=false;Label1.Visible=false;Label3.Visible=false;Button1.Visible=false;Label5.Visible=false;SqlDataSource1.SelectCommand="SELECT课程.课程名,课程.考核方式,教学计划.开设学期,成绩.成绩FROM学生INNERJOIN班级ON学生.班号=班级.班号INNERJOIN教学计划ON班级.计划号=教学计划.教学计划号INNERJOIN课程ON教学计划.试卷号=课程.试卷号LEFTOUTERJOIN成绩ON学生.学号=成绩.学号AND课程.试卷号=成绩.试卷号WHERE(学生.学号="+TextBox1.Text+")ORDERBY教学计划.开设学期";}else{Label5.Text="你输入的学号或者身份证号有误,请重新输入";TextBox1.Text="";TextBox2.Text="";}}
解决方案三:
再次补充,如果输入错误的学号和身份证号,在本机,和远程都能正常运行,显示身份证或者学号错误。但是就是输入正确的学号和身份证号后远程没有反应,然后一会出现无法访问该网页。SqlDataSource1的链接字符串是<addname="CESHIConnectionString3"connectionString="DataSource=(local);InitialCatalog=CESHI;UserID=sa;Password=123"。
解决方案四:
我晕,看来是不会写SQL语句的Where条件,要比较用户名和密码是否正确,也没必要去遍历吧?还有,听你的描述,如果是错误,还能够显示后面的提示,但如果是正确,就很慢,那就需要检查下你那个SqlDataSource1.SelectCommand了,把这个语句断点出来,然后在获得SQL语句以后,拿到数据库中去调试一下,看看查询效率如何
解决方案五:
在本机上能够很快的查出要显示的学生的成绩,但是远程访问就很慢,然后出现无妨访问该网页。本机能正常显示所以SqlDataSource1.SelectCommand应该没有问题吧。还请指教
解决方案六:
顶一下,请指教啊。本机上运行正常,远程访问就没反映了。这个真不知道问题在那里。也不知道怎么调试。急
解决方案七:
引用5楼zzqpeter2的回复:
顶一下,请指教啊。本机上运行正常,远程访问就没反映了。这个真不知道问题在那里。也不知道怎么调试。急
你最起码能知道哪行代码执行了、哪行没有执行吧?!
解决方案八:
if(flag==true)应该是在这里出的问题,前面学号和身份证号的获取和匹配是正常执行的。
解决方案九:
引用7楼zzqpeter2的回复:
if(flag==true)应该是在这里出的问题,前面学号和身份证号的获取和匹配是正常执行的。
具体将日志定位到2、3行代码行上,然后贴出上下文代码来。而不要含糊地说一大块。
解决方案十:
额。。。为何一个登陆功能还要遍历?sql直接增加where条件。如果真要报错,那么stringcardid=dr["学号"].ToString();stringpassword=dr["身份证号"].ToString();if(uid==cardid&&pwd==password)这三句出错的可能比较高。
解决方案十一:
是不是架到服务器上有什么错误
解决方案十二:
肯定是下面这里的问题,你把具体值放进去数据库里查一下应该就能确定问题。SqlDataSource1.SelectCommand="SELECT课程.课程名,课程.考核方式,教学计划.开设学期,成绩.成绩FROM学生INNERJOIN班级ON学生.班号=班级.班号INNERJOIN教学计划ON班级.计划号=教学计划.教学计划号INNERJOIN课程ON教学计划.试卷号=课程.试卷号LEFTOUTERJOIN成绩ON学生.学号=成绩.学号AND课程.试卷号=成绩.试卷号WHERE(学生.学号="+TextBox1.Text+")ORDERBY教学计划.开设学期";