大家帮我看下代码,我在VS2005中做的一个网页管理员登录界面,管理员信息已经在SQL的login 表中保存,代码如下:
protected void Button1_Click(object sender, EventArgs e);
SqlConnection Conn =new SqlConnection();
Conn.ConnectionString = "server=localhost; Trusted_Connection=True; database=denglu;";
Conn.Open();
SqlCommand Comm = new SqlCommand ("select count( *)from yanzheng where use='+TextBox1.Text+'" and password= "'+TextBox2.Text+'",Conn);
int count = Convert.ToInt32Comm.ExecuteScalar());
if (count > 0)
{
Response.Redirect("main.aspx");
}
else
{
Response.Redirect("index.aspx");
}
Conn.Close();
下面是错误提示:
用C#做一个登录界面的问题~
- 提问者网友:雪舞兮
- 2021-04-25 13:28
- 五星知识达人网友:怀裏藏嬌
- 2021-04-25 14:48
查询语句有变量就要声明啊,有@符号声明变量,变量声明后添加到SqlCommand 的 SqlParameter中,
查询语句应该这样写:
select count from yanzheng where use=@use and password =@password
然后添加参数:
SqlParameter par = new SqlParameter("@use", TextBox1.Text);
SqlParameter par = new SqlParameter("@password", TextBox2.Text);
Comm.Parameters.Add(par1);
Comm.Parameters.Add(par2);
你是不是想得到受影响的行数,来判断是否存在这个用户呢?你调用的这个方法ExecuteScalar()他的返回值是第一行,第一列的值。ExecuteNonQuery ()这个方法返回受影响的行数
int count=Comm.ExecuteNonQuery ()//他的返回值已经是int型了
- 1楼网友:酒安江南
- 2021-04-25 19:57
int count = Convert.ToInt32Comm.ExecuteScalar());
int count = Convert.ToInt32(Comm.ExecuteScalar());
- 2楼网友:神也偏爱
- 2021-04-25 18:31
用存储过程吧 安全 还是用SqlParameter的那个好点
- 3楼网友:琴狂剑也妄
- 2021-04-25 17:31
- 4楼网友:醉吻情书
- 2021-04-25 16:29
protected void Button1_Click(object sender, EventArgs e);
这里的分号要去掉
protected void Button1_Click(object sender, EventArgs e)
{
//在这里面写登录的代码就可以了
SqlConnection Conn =new SqlConnection(); Conn.ConnectionString = "server=localhost; Trusted_Connection=True; database=denglu;"; Conn.Open(); SqlCommand Comm = new SqlCommand ("select count( *)from yanzheng where use='+TextBox1.Text+'" and password= "'+TextBox2.Text+'",Conn); int count = Convert.ToInt32Comm.ExecuteScalar()); if (count > 0) { Response.Redirect("main.aspx"); } else { Response.Redirect("index.aspx"); } Conn.Close();
}
- 5楼网友:躲不过心动
- 2021-04-25 15:42