利用ADO.NET类库结合后台数据库实现登录判断

来源:互联网 发布:485通讯端口电压多少 编辑:程序博客网 时间:2024/06/06 20:37

在一个登录界面中,正确输入数据库中存的账户和密码会登录成功并跳转到view.aspx显示数据表中的信息,否则弹出“账号或密码错误”


新建一个学生数据表:

在App_Data里新建一个数据库文件:student.mdf,然后新建一个名为student的表


登录界面:index.aspx

在“设计”中加入sqlDataSource绑定数据源(刚刚新建的student表),并生成连接字符串信息(在Web.config中),这里命名连接student表的字符串为YConnectionString(如下字符串为绑定数据源后系统生成)

<connectionStrings>    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-WebApplicationxMVC-20170428053750.mdf;Initial Catalog=aspnet-WebApplicationxMVC-20170428053750;Integrated Security=True"      providerName="System.Data.SqlClient" />    <add name="YConnectionString" connectionString="Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\student.mdf;Integrated Security=True"      providerName="System.Data.SqlClient" />  </connectionStrings>

index.aspx前台登录控件代码:

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>    <title></title>    <style type="text/css">        .auto-style1 {            width: 23%;        }        .auto-style2 {            text-align: center;        }    </style></head><body>    <form id="form1" runat="server">    <div>            <table class="auto-style1">            <tr>                <td class="auto-style2" colspan="2"><strong>学生登录界面</strong></td>            </tr>            <tr>                <td>用户名:</td>                <td>                    <asp:TextBox ID="txtname" runat="server"></asp:TextBox>                </td>            </tr>            <tr>                <td>密码:</td>                <td>                    <asp:TextBox ID="txtpwd" runat="server"></asp:TextBox>                </td>            </tr>            <tr>                <td class="auto-style2" colspan="2">                    <asp:Button ID="Button1" runat="server" Text="登录" onclick="Button1_Click"/>                     <asp:Button ID="Button2" runat="server" Text="重置" onclick="Button2_Click"/>                </td>            </tr>        </table>            <br />        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConflictDetection="CompareAllValues" ConnectionString="<%$ ConnectionStrings:YConnectionString %>" DeleteCommand="DELETE FROM [student] WHERE [Id] = @original_Id AND (([sname] = @original_sname) OR ([sname] IS NULL AND @original_sname IS NULL)) AND (([spwd] = @original_spwd) OR ([spwd] IS NULL AND @original_spwd IS NULL)) AND (([sex] = @original_sex) OR ([sex] IS NULL AND @original_sex IS NULL)) AND (([semail] = @original_semail) OR ([semail] IS NULL AND @original_semail IS NULL))" InsertCommand="INSERT INTO [student] ([Id], [sname], [spwd], [sex], [semail]) VALUES (@Id, @sname, @spwd, @sex, @semail)" OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT * FROM [student]" UpdateCommand="UPDATE [student] SET [sname] = @sname, [spwd] = @spwd, [sex] = @sex, [semail] = @semail WHERE [Id] = @original_Id AND (([sname] = @original_sname) OR ([sname] IS NULL AND @original_sname IS NULL)) AND (([spwd] = @original_spwd) OR ([spwd] IS NULL AND @original_spwd IS NULL)) AND (([sex] = @original_sex) OR ([sex] IS NULL AND @original_sex IS NULL)) AND (([semail] = @original_semail) OR ([semail] IS NULL AND @original_semail IS NULL))">            <DeleteParameters>                <asp:Parameter Name="original_Id" Type="Int32" />                <asp:Parameter Name="original_sname" Type="String" />                <asp:Parameter Name="original_spwd" Type="String" />                <asp:Parameter Name="original_sex" Type="String" />                <asp:Parameter Name="original_semail" Type="String" />            </DeleteParameters>            <InsertParameters>                <asp:Parameter Name="Id" Type="Int32" />                <asp:Parameter Name="sname" Type="String" />                <asp:Parameter Name="spwd" Type="String" />                <asp:Parameter Name="sex" Type="String" />                <asp:Parameter Name="semail" Type="String" />            </InsertParameters>            <UpdateParameters>                <asp:Parameter Name="sname" Type="String" />                <asp:Parameter Name="spwd" Type="String" />                <asp:Parameter Name="sex" Type="String" />                <asp:Parameter Name="semail" Type="String" />                <asp:Parameter Name="original_Id" Type="Int32" />                <asp:Parameter Name="original_sname" Type="String" />                <asp:Parameter Name="original_spwd" Type="String" />                <asp:Parameter Name="original_sex" Type="String" />                <asp:Parameter Name="original_semail" Type="String" />            </UpdateParameters>        </asp:SqlDataSource>        </div>    </form></body></html>

index.aspx后台登录button和重置button触发代码:

protected void Page_Load(object sender, EventArgs e)        {        }        protected void Button1_Click(object sender, EventArgs e)        {            string name = txtname.Text.Trim();            string pwd = txtpwd.Text.Trim();            if(name=="")            {                ClientScript.RegisterStartupScript(this.GetType(),"用户名为空","<script>alert('用户名不能为空')</script>");                //触发客户端脚本警告                return ;            }            if(pwd=="")            {                ClientScript.RegisterStartupScript(this.GetType(), "密码为空", "<script>alert('密码不能为空')</script>");                return;            }            string strcon = ConfigurationManager.ConnectionStrings["YConnectionString"].ToString();            SqlConnection connection = new SqlConnection(strcon);//创建连接对象            string sql = string.Format("select count(*) from student where sname='{0}' and spwd='{1}'",name,pwd);//利用Format填充方式生成sql语句            SqlCommand command = new SqlCommand(sql, connection);//创建命令对象            connection.Open();//打开数据库连接            int count = (int)command.ExecuteScalar();//查询,返回聚合函数(count)执行的结果            connection.Close();            if(count>0)            {                Response.Redirect("view.aspx");//成功登陆,跳转到view.aspx                          }            else            {                ClientScript.RegisterStartupScript(this.GetType(), "无此用户", "<script>alert('用户名或密码错误')</script>");                txtname.Text = "";                txtpwd.Text = "";            }        }        protected void Button2_Click(object sender, EventArgs e)        {            txtname.Text = "";            txtpwd.Text = "";        }


登录成功界面:view.aspx

使用GridView显示学生信息

前台控件代码:

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>    <title></title></head><body>    <form id="form1" runat="server">    <div>            <asp:GridView ID="GridView1" runat="server">        </asp:GridView>        </div>    </form></body></html>

后台代码:

protected void Page_Load(object sender, EventArgs e)        {            string strcon = ConfigurationManager.ConnectionStrings["YConnectionString"].ToString();            SqlConnection connection = new SqlConnection(strcon);            string sql = "select * from student";//查询学生全部信息            SqlDataAdapter adapter = new SqlDataAdapter(sql,connection);//适配器对象,数据表和DataSet数据集对象传输的接口            DataSet dataset = new DataSet();//创建数据集对象            adapter.Fill(dataset,"student");//数据表student填充到dataset数据集中            GridView1.DataSource = dataset.Tables[0];//设置GridView1(ID号)数据源为数据集dataset中的第一个表            GridView1.DataBind();//绑定数据源        }



0 0