ASP.NET动态网站制作(22)-- ADO.NET(1)
前言:这节课开始真正地学习WEB开发,ADO.NET就是一组允许.NET开发人员使用标准的、机构化的,甚至无连接的方式与数据交互的技术。所属的类库为:System.Data.dll。
内容:
1.ADO.NET就是实现后台页面(C#)和数据库交互的技术。
2.新建一个web项目,其中有一个Web.config文件,它储存一些公共信息,如数据库连接信息等。在项目中添加一个Web窗体,实际上它就是一个HTML页面,只不过是与后台页面关联在一起的HTML。一个Web窗体包含前台文件(.aspx)和后台文件(.aspx.cs)。
3.有三种控件:服务端控件、客户端控件和自定义控件。服务端控件的特点是其属性里有一个runat="server"。
4.string="";和string=null;是不一样的,区别在于string="";在堆里开辟了空间,而string=null;没有开辟空间。
5.使用string.Format()向字符串中传值。
6.using有两个作用:一是引入命名空间,二是释放资源。凡是继承于IDisposable接口的都要释放资源。
7.一个应用例子:
Web.config文件:
1 <?xml version="1.0" encoding="utf-8"?> 2 <!-- 3 有关如何配置 ASP.NET 应用程序的详细信息,请访问 4 http://go.microsoft.com/fwlink/?LinkId=169433 5 --> 6 <configuration> 7 <connectionStrings> 8 <add name="sq_zoe" connectionString="Database=sq_zoe;Server=.;Integrated Security=false;Uid=sa;Password=123;"providerName="System.Data.SqlClient"/> 9 </connectionStrings> 10 <system.web> 11 <compilation debug="true" targetFramework="4.5" /> 12 <httpRuntime targetFramework="4.5" /> 13 </system.web> 14 </configuration>
Login.aspx文件:
1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="ADO.NET1.Login" %> 2 3 <!DOCTYPE html> 4 5 <html xmlns="http://www.w3.org/1999/xhtml"> 6 <head runat="server"> 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 8 <title></title> 9 </head> 10 <body> 11 <form id="form1" runat="server"> 12 <div> 13 <table> 14 <tr><td>用户名:</td><td> 15 <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox></td></tr> 16 <tr><td>密码:</td><td> 17 <asp:TextBox ID="txtPwd" runat="server" TextMode="Password"></asp:TextBox></td></tr> 18 <tr><td> 19 <asp:Button ID="btnClear" runat="server" Text="清除" OnClick="btnClear_Click" /></td><td> 20 <asp:Button ID="btnLogin" runat="server" Text="登录" OnClick="btnLogin_Click" /></td></tr> 21 </table> 22 </div> 23 </form> 24 </body> 25 </html>
Login.aspx.cs文件:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 using System; 2 using System.Configuration; 3 using System.Data.SqlClient; 4 using System.Web.UI; 5 6 namespace ADO.NET1 7 { 8 public partial class Login : Page 9 { 10 protected void Page_Load(object sender, EventArgs e) 11 { 12 13 } 14 /// <summary> 15 /// 清除 16 /// </summary> 17 /// <param name="sender"></param> 18 /// <param name="e"></param> 19 protected void btnClear_Click(object sender, EventArgs e) 20 { 21 txtUserName.Text = ""; 22 txtPwd.Text = ""; 23 } 24 /// <summary> 25 /// 登录 26 /// </summary> 27 /// <param name="sender"></param> 28 /// <param name="e"></param> 29 protected void btnLogin_Click(object sender, EventArgs e) 30 { 31 string username = txtUserName.Text.Trim(); 32 string pwd = txtPwd.Text.Trim(); 33 if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(pwd)) 34 { 35 Response.Write("<script>alert('用户名或者密码不能为空');</script>"); 36 } 37 else 38 { 39 string strCon=ConfigurationManager.ConnectionStrings["sq_zoe"].ToString();//电话号码 40 using (SqlConnection con = new SqlConnection(strCon))//电话 41 { 42 con.Open();//和数据库建立起了连接 43 string strSql = string.Format("select UserId from UserInfor where UserName='{0}' and Pwd='{1}'", username, pwd); 44 SqlCommand cmd = new SqlCommand(strSql, con);//执行sql语句 45 using (SqlDataReader read = cmd.ExecuteReader())//执行sql语句,将得到的结果赋值给read 46 { 47 if (read.HasRows) 48 { 49 //Response.Write("<script>alert('登录成功');</script>"); 50 Response.Redirect("RNewsM.aspx"); 51 } 52 else 53 { 54 Response.Write("<script>alert('用户名或者密码错误');</script>"); 55 } 56 } 57 } 58 //read.Close(); 59 //read.Dispose(); 60 //con.Close(); 61 //con.Dispose(); 62 } 63 } 64 } 65 }
第一个Web算是做好了。
后记:得多多练习。
Keep moving.