求助各位高手sql连接问题

canyoufuck 2012-03-20 09:33:22
具体症状就是,虽然编译没错,也能登陆sa,但好像没法从数据库里核对用户名密码,不管我怎么输入,点了登陆以后都没反应。本来应该转到default页面,但还停留在landing页面,直接就断开连接的样子,以下是代码。
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Xml;

namespace RegWeb
{
public partial class landing1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("server=.;database=web;uid=sa;pwd=sa");
if (Session["CheckCode"].ToString().Equals(TextLoginYzm.Text.ToString()))
{
try
{
con.Open();
string md5pass = FormsAuthentication.HashPasswordForStoringInConfigFile(TextLoginPass.Text, "MD5");
SqlCommand cmd = new SqlCommand("select count(*) from LoginInfo where Name='" + TextLoginName.Text.Trim() + "' and Pass='" + md5pass + "'", con);
int i = (int)cmd.ExecuteScalar();
if (i > 0)
{
cmd = new SqlCommand("insert EntryLog(Name,LandingDate) values('" + TextLoginName.Text.Trim() + "','" + DateTime.Now.ToString() + "')", con);
cmd.ExecuteScalar();
con.Close();
Response.Redirect("Default.aspx");
}
else
{
Response.Write("<script>alert('password or id is wrong!')</script>");
}
}
catch (Exception error)
{
Response.Write(error.ToString());
}
}
else
{
Response.Write("<script>alert('验证码错误!')</script>");
}
}

protected void LinkButton2_Click(object sender, EventArgs e)
{

}
}
}
...全文
109 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
allen0118 2012-03-21
  • 打赏
  • 举报
回复
第二个地方不能使用cmd.ExecuteScalar();你需要写入一条数据到数据库,应该返回受影响的行数。
canyoufuck 2012-03-21
  • 打赏
  • 举报
回复
在登陆框输了账号密码后,也不提示我登陆用户的密码对错,也不会跳转到我的default页,直接就断网的样子
canyoufuck 2012-03-21
  • 打赏
  • 举报
回复
如果我故意输错sa的密码,会提示我连不上数据库。但是输对了一样没用,就变成断网的样子
哪吒 2012-03-21
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 net_lover 的回复:]
你先在代码中加入
Response.Write("debug1");
看看执行到哪里了
[/Quote]

他的级别最高了
孟子E章 2012-03-21
  • 打赏
  • 举报
回复
你先在代码中加入
Response.Write("debug1");
看看执行到哪里了
canyoufuck 2012-03-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 chinajiyong 的回复:]

if (i > 0)
{
cmd = new SqlCommand("insert EntryLog(Name,LandingDate) values('" + TextLoginName.Text.Trim() + "','" + DateTime.Now.ToString() + "')", con);
cmd.ExecuteScalar();
con.Close(……
[/Quote]多谢各位高手帮忙,但我按各位的方法改了以后还是老样子,不知为何
yp19910928 2012-03-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 chinajiyong 的回复:]
if (i > 0)
{
cmd = new SqlCommand("insert EntryLog(Name,LandingDate) values('" + TextLoginName.Text.Trim() + "','" + DateTime.Now.ToString() + "')", con);
cmd.ExecuteScalar();
con.Close();……
[/Quote]SQL语句不对insert into。。。
冰镇宝贝321 2012-03-21
  • 打赏
  • 举报
回复
建议加个断点 一步步的运行下去,既然SQL能连,那就是代码语句的问题了
beginners 2012-03-21
  • 打赏
  • 举报
回复
你可以让它自动生成字符串,然后复制过来。。
暖枫无敌 2012-03-20
  • 打赏
  • 举报
回复
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Xml;

namespace RegWeb
{
public partial class landing1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("server=.;database=web;uid=sa;pwd=sa");
if (Session["CheckCode"].ToString().Equals(TextLoginYzm.Text.ToString()))
{
try
{
con.Open();
string md5pass = FormsAuthentication.HashPasswordForStoringInConfigFile(TextLoginPass.Text, "MD5");
SqlCommand cmd = new SqlCommand("select count(*) from LoginInfo where Name='" + TextLoginName.Text.Trim() + "' and Pass='" + md5pass + "'", con);
int i = (int)cmd.ExecuteScalar();
if (i > 0)
{
cmd = new SqlCommand("insert EntryLog(Name,LandingDate) values('" + TextLoginName.Text.Trim() + "','" + DateTime.Now.ToString() + "')", con);
//cmd.ExecuteScalar();
cmd.ExecuteNonQuery();
con.Close();
Response.Redirect("Default.aspx");
}
else
{
Response.Write("<script>alert('password or id is wrong!')</script>");
}
}
catch (Exception error)
{
Response.Write(error.ToString());
}
}
else
{
Response.Write("<script>alert('验证码错误!')</script>");
}
}

protected void LinkButton2_Click(object sender, EventArgs e)
{

}
}
}
孟子E章 2012-03-20
  • 打赏
  • 举报
回复
你可以断点测试下。
另外,
你的站点启用匿名访问了吗
传递正能量 2012-03-20
  • 打赏
  • 举报
回复
server=.;database=web;uid=sa;pwd=sa


换个数据库的链接字符串
EnForGrass 2012-03-20
  • 打赏
  • 举报
回复
if (i > 0)
{
cmd = new SqlCommand("insert EntryLog(Name,LandingDate) values('" + TextLoginName.Text.Trim() + "','" + DateTime.Now.ToString() + "')", con);
cmd.ExecuteScalar();
con.Close();
Response.Redirect("Default.aspx");
}
红色部分之间少个into,后面既然是插入,应该用cmd.ExecutNonQuery()

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧