asp.net(c#)如何读取数据库中数据来验证登陆的用户和密码是否正确?

asp.net(c#)如何读取数据库中数据来验证登陆的用户和密码是否正确?,第1张

代码如下:

stringuname=this.txtUsername.Text//得到登陆帐号

stringpwd=this.txtPassword.Text//得到登陆密码

SqlConnectionsqlCon=newSqlConnection()//创建数据库连接对象

//初始化该对象的连接字串

sqlCon.ConnectionString

ConfigurationManager.ConnectionStrings["strConn"].ConnectionString

sqlCon.Open()//打开数据库连接

SqlCommandsqlComGet=newSqlCommand()//创建SqlCommand对象

sqlComGet.Connection=sqlCon//用sqlCon初始化SqlCommand对象

sqlComGet.CommandText="select*fromTUserwhereUserName='"+uname+"'andUserPwd='"+pwd+"'"

SqlDataReadersqlDr=sqlComGet.ExecuteReader()//创建SqlDataReader对象

if(sqlDr.Read())//帐号和密码正确

{Session["UserID"]=sqlDr["UserID"]

Session["UserEmail"]=sqlDr["UserEmail"]

Session["UserName"]=uname//用Session记录帐号

Session["UserPwd"]=pwd//用Session记录密码

Response.Redirect("Default.aspx")

}

else//帐号或密码错误

{

this.lblResults.Text="您输入的用户名或密码不正确!"

}

sqlCon.Close()

ASP.NET又称为ASP+,不仅仅是ASP的简单升级,而是微软公司推出的新一代脚本语言。ASP.NET基于.NETFramework的Web开发平台,不但吸收了ASP以前版本的最大优点并参照Java、VB语言的开发优势加入了许多新的特色,同时也修正了以前的ASP版本的运行错误。

语言特点:

(1)多语言支持

多语言支持是ASP.NET的重要新特性之一,主要表现在所支持的编程语言种类多和单个语言功能强两个方面。

(2)增强的性能

在ASP.NET中,页面代码是被编译执行的,它利用提前绑定、即时编译、本地优化和缓存服务来提高性能。当第一次请求一个页面时,cLR对页面程序代码和页面自身进行编译,并在高速缓存cache中保存编译结果的副本。当第二次请求该页面时,就直接使用cache中的结果(无需再次编译)。这就大大提高了页面的处理性能。

(3)类和名空间

ASP.NET包含一整套有用的类和名空间(Namespaces)。名空间被用做一种有组织的机制--一种表示可用于其他程序和应用的程序组件的方法。名空间包含类。和类库一样,名空间可以使Web应用程序的编写变得更加容易。HtmlAnchor、HtmlContrl以及HtmlForm是ASP.NET中的几个类,它们被包含System.web.UI.HtmlControl空间中。

(4)服务器控件

ASP.NET提供了许多功能强大的服务器控件,这大大简化了web页面的创建任务。这些服务器控件提供从显示、日历、表格到用户输入验证等通用功能,它们自动维护其选择状态,并允许服务器端代码访问和调用其属性、方法和事件。因此,服务器控件提供了一个清晰的编程模型,使得Web应用的开发变得简单、容易。

这是因为回传造成的

首先把流程搞清楚:加载

1、加载数据到文本框

2、修改数据

3、点“提交”这次回传,导致后台页面再次加载原始数据到文本框

注意:此次后台程序又将文本框的值,设置成数据库里面的那个原来的值

4、插入数据库。。。结果插入的时候textbox的值已经变了,变成还是数据库里面的那个。。。

上述,可以设置断点调试,一下就看出来了。

调试会么?点左边设置断电,然后F5启动调试,到断点后按F11单步调试,看看各个变量的值

解决方法应该这样

1、在你加载原始数据到文本框的方法里面加上

if(!IsPostBack)

{

//此处加载文本框原始数据,并且只有再第一次加载页面的时候才改变textbox的值

}

意思是只有再页面首次加载的时候才加载文本框的值,如果是回传,则不加载

2、更新的方法里面加上

if(IsPostBack)

{

//此处写更新方法

}

意思是,当是页面回传的时候,更新文本框的值,其实这个加不加无所谓。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10074654.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存