做了一个最简单的登录框,用单文件形式。ACCESS数据库。里面表user里已经有用户名和密码的数据。并SQL语句已经在数据库中验证成功。
文件清单如下:<%@ Page Language="C#" %>
– <%@ Import Namespace="System.Data.OleDb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> protected void Button1_Click(object sender, EventArgs e)
{
string name=TextBox1.Text;
string pasw=TextBox2.Text; string mystr;
OleDbConnection myconn = new OleDbConnection();
mystr = "Provider = Microsoft.Jet.OLEDB.4.0;" +
"Data Source =" + Server.MapPath("~\\App_data\\Stud.mdb");
myconn.ConnectionString = mystr;
myconn.Open();
string sql;
sql = "select count(*) from user where use_name='" + name + "' and passw='" + pasw + "'";
OleDbCommand mycmd = new OleDbCommand();
mycmd.CommandText = sql;
mycmd.Connection = myconn;
int count = (int)mycmd.ExecuteScalar();
if (count == 1) {
Label1.Text = "欢迎你," + TextBox1.Text;
}
else
{
Response.Redirect("登录.aspx");
}
}
</script><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<p>
用户名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</p>
<p>
密 码:<asp:TextBox ID="TextBox2" runat="server"
TextMode="Password"></asp:TextBox>
</p>
<p>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="登录" />
</p>
<div>
<asp:Label ID="Label1" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
运行时,出现正常的登录框,用正确的用户名和密码登录,出现提示。指出的是int count = (int)mycmd.ExecuteScalar();语句。在源程序中弹出消息框说“用户代码未处理”下面的内容是“FROM子句错误。”将SELECT 语句换面只检索一项的,比如用户名,然后再进行读取判断,也是这样的提示。请教大家,是什么样的错误。谢谢帮助。
文件清单如下:<%@ Page Language="C#" %>
– <%@ Import Namespace="System.Data.OleDb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> protected void Button1_Click(object sender, EventArgs e)
{
string name=TextBox1.Text;
string pasw=TextBox2.Text; string mystr;
OleDbConnection myconn = new OleDbConnection();
mystr = "Provider = Microsoft.Jet.OLEDB.4.0;" +
"Data Source =" + Server.MapPath("~\\App_data\\Stud.mdb");
myconn.ConnectionString = mystr;
myconn.Open();
string sql;
sql = "select count(*) from user where use_name='" + name + "' and passw='" + pasw + "'";
OleDbCommand mycmd = new OleDbCommand();
mycmd.CommandText = sql;
mycmd.Connection = myconn;
int count = (int)mycmd.ExecuteScalar();
if (count == 1) {
Label1.Text = "欢迎你," + TextBox1.Text;
}
else
{
Response.Redirect("登录.aspx");
}
}
</script><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<p>
用户名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</p>
<p>
密 码:<asp:TextBox ID="TextBox2" runat="server"
TextMode="Password"></asp:TextBox>
</p>
<p>
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="登录" />
</p>
<div>
<asp:Label ID="Label1" runat="server"></asp:Label>
</div>
</form>
</body>
</html>
运行时,出现正常的登录框,用正确的用户名和密码登录,出现提示。指出的是int count = (int)mycmd.ExecuteScalar();语句。在源程序中弹出消息框说“用户代码未处理”下面的内容是“FROM子句错误。”将SELECT 语句换面只检索一项的,比如用户名,然后再进行读取判断,也是这样的提示。请教大家,是什么样的错误。谢谢帮助。
sql = "select count(*) from [user] where use_name='" + name + "' and passw='" + pasw + "'";