Ado.net[增删改查,GET传值]
1.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Home.aspx.cs" Inherits="_20160520.Home" %> <!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> <link href="css/gv.css" rel="stylesheet" /> </head> <body> <form id="form1" runat="server"> <div class="gv"> <table> <tr> <td>用户名:</td> <td> <asp:TextBox ID="TxtUserName" runat="server" Width="132px"></asp:TextBox> </td> <td>班级:</td> <td> <asp:DropDownList ID="ddlsclass" runat="server"> <asp:ListItem>---请选择---</asp:ListItem> <asp:ListItem>微软一班</asp:ListItem> <asp:ListItem>微软二班</asp:ListItem> <asp:ListItem>微软三班</asp:ListItem> </asp:DropDownList> </td> <td> <asp:Button ID="btnsel" runat="server" Text="查询" OnClick="btnsel_Click" /> </td> </tr> </table> <table> <tr> <td>用户名:</td> <td> <asp:TextBox ID="TxtUsersName" runat="server"></asp:TextBox> </td> </tr> <tr> <td>密码:</td> <td> <asp:TextBox ID="TxtPwd" runat="server"></asp:TextBox> </td> </tr> <tr> <td>姓名:</td> <td> <asp:TextBox ID="Txtloginname" runat="server"></asp:TextBox> </td> </tr> <tr> <td>QQ:</td> <td> <asp:TextBox ID="Txtqq" runat="server"></asp:TextBox> </td> </tr> <tr> <td>班级:</td> <td> <asp:DropDownList ID="ddlclass" runat="server"> <asp:ListItem>---请选择---</asp:ListItem> <asp:ListItem>微软一班</asp:ListItem> <asp:ListItem>微软二班</asp:ListItem> <asp:ListItem>微软三班</asp:ListItem> </asp:DropDownList> </td> </tr> <tr> <td colspan="2" style="text-align: right"> <asp:Button ID="BtnAdd" runat="server" Text="添加" OnClick="BtnAdd_Click"/> </td> </tr> </table> <table> <tr> <td>ID:</td> <td> <asp:TextBox ID="TxtDuserid" runat="server"></asp:TextBox> </td> <td> <asp:Button ID="BtnDel" runat="server" Text="删除" OnClick="BtnDel_Click" /> </td> </tr> </table> <table> <tr> <td> ID</td> <td> <asp:TextBox ID="TxtuUserId" runat="server"></asp:TextBox> </td> </tr> <tr> <td> 用户名:</td> <td> <asp:TextBox ID="TxtuUserName" runat="server"></asp:TextBox> </td> </tr> <tr> <td colspan="2" style="text-align: right"> <asp:Button ID="BtnUpdate" runat="server" Text="更新" OnClick="Button1_Click" /> </td> </tr> </table> <asp:GridView ID="IdGridView" runat="server" AutoGenerateColumns="False"> <Columns> <asp:BoundField DataField="id" HeaderText="ID" /> <asp:BoundField DataField="username" HeaderText="用户名" /> <asp:BoundField DataField="PWD" HeaderText="密码" /> <asp:BoundField DataField="loginname" HeaderText="姓名" /> <asp:BoundField DataField="qq" HeaderText="QQ" /> <asp:BoundField DataField="classname" HeaderText="班级" /> <asp:TemplateField HeaderText="详情"> <ItemTemplate> <a href="UserInfo.aspx?id=<%#Eval("ID") %>" target="_blank">详情</a> <%--<a href='UserInfo.aspx?userid=<%#Eval("UserId") %>' target="_blank">详情</a <%-- <a href="one.aspx?">详情</a>--%> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> </div> </form> </body> </html>
2.跳转的另一个页面
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Configuration; using System.Data.SqlClient; using System.Text; namespace _20160520 { public partial class Home : System.Web.UI.Page { //假如页面多,每个页面都要写一个连接字符串,所以我们一般放在配置文件中 //string strstring = "server=.; Database=MyBookShop;Integrated Security=false;Uid=sa;Pwd=123456"; // string connStr = "Database=Student;Server=.;Integrated Security=false;Uid=sa;Password=123;"; //通过这个类ConfigurationManager获取web.confiig里面的节点名称来获取连接的字符串 private string conStr = ConfigurationManager.ConnectionStrings["mySchool"].ToString(); //把这个字符串传进去 //SqlConnection con = new SqlConnection(conStr); SqlConnection con = null;//相当于是电话 SqlCommand cmd = null;//执行sql语句 SqlDataReader dr = null;//用于储存查询结果 private void openDB() { con = new SqlConnection(conStr); con.Open();//和数据库建立起了连接 //我们单独把这两句话封装起来直接调用就好 } //页面一运行就执行这里面的内容 protected void Page_Load(object sender, EventArgs e) { BindUser(); } public void BindUser() { try { openDB(); //得到sql语句 //string sql = "select loginid,name,loginpwd,address,ClassName,mail from Users"; string sql = Getswhere(); //执行sql语句 using (cmd = new SqlCommand(sql, con)) //对象有了,我们要通过对象去执行sql语句 { using (dr = cmd.ExecuteReader()) { IdGridView.DataSource = dr; IdGridView.DataBind(); } //dr.Dispose();//释放资源 //dr.Close();//关闭连接 //con.Dispose(); //con.Close(); } } catch { Response.Write("网站正在维护中.......!"); } } protected void btnsel_Click(object sender, EventArgs e) { } //我们需要得到where后面 public string Getswhere() { StringBuilder sb = new StringBuilder(); sb.Append("select ID,username,PWD,loginname,qq,classname from Users where 1=1"); //获取到它的用户名 string username = TxtUserName.Text.Trim(); if (!string.IsNullOrEmpty(username)) { sb.Append(string.Format("and username='{0}'", username)); } if(ddlsclass.SelectedIndex>0) { sb.Append(string.Format("and ClassName='{0}'", ddlsclass.SelectedValue)); } return sb.ToString(); } //添加 protected void BtnAdd_Click(object sender, EventArgs e) { try { //要获取到文本框里面的内容 string username = TxtUsersName.Text.Trim(); string pwd = TxtPwd.Text.Trim(); string loginname = Txtloginname.Text.Trim(); string qq = Txtqq.Text.Trim(); //ddlclass.SelectedIndex > 0 ? ddlclass.SelectedValue "" : ;判断它是否被选中,如果选中>0,就等于选中的内容,如果没有被选中的话,就为空 string classname = ddlclass.SelectedIndex > 0 ? ddlclass.SelectedValue: ""; //写sql语句 string sql = string.Format("insert Users (username,PWD,loginname,qq,classname) values ('{0}','{1}','{2}','{3}','{4}')", username, pwd, loginname, qq, classname); //sql语句有了之后怎么做添加呢? //第一步和数据库建立起连接 openDB(); //连接建立起来之后,我们创建一个sqlcommand对象 using (cmd = new SqlCommand(sql, con)) { //这时候我们怎么通过对象去执行它的插入呢?ExecuteNonQuery执行增删改查语句,返回的是int类型 cmd.ExecuteNonQuery(); } //直接绑定 BindUser(); } catch { Response.Write("网站正在维护中.......!"); } } //删除 protected void BtnDel_Click(object sender, EventArgs e) { int userid = 0;//userid默认等于0 //有可能输入的不是整数,不是整数的话,输入之后它有可能发生异常 try { //TxtDuserid.Text.Trim()==""?,如果它的内容等于空的话,我们就让它等于0(?0),不为空的话,我们就Convert(将一个数据类型转为另一个基本数据类型)一下 userid = TxtDuserid.Text.Trim() == "" ? 0 : Convert.ToInt32(TxtDuserid.Text.Trim()); } catch { userid = 0; } //id就得到了,判断数据库里面有没有 string s1 = string.Format("select ID from users where ID={0}", userid); //和数据库建立起连接 openDB(); using (cmd = new SqlCommand(s1, con)) { dr = cmd.ExecuteReader(); //查询有没有数据 if (dr.HasRows) { //如果有,就执行删除语句,得到一个s2 string s2 = string.Format("delete Users where ID={0}",userid); dr.Dispose(); dr.Close(); using(cmd = new SqlCommand(s2, con)) { cmd.ExecuteNonQuery(); } } else { //没有就 Response.Write("该用户ID不存在!"); } } BindUser(); } //更新 protected void Button1_Click(object sender, EventArgs e) { int userid = 0;//userid默认等于0 //有可能输入的不是整数,不是整数的话,输入之后它有可能发生异常 try { //TxtDuserid.Text.Trim()==""?,如果它的内容等于空的话,我们就让它等于0(?0),不为空的话,我们就Convert(将一个数据类型转为另一个基本数据类型)一下 userid = TxtuUserId.Text.Trim() == "" ? 0 : Convert.ToInt32(TxtuUserId.Text.Trim()); } catch { userid = 0; } //id就得到了,判断数据库里面有没有 string s1 = string.Format("select ID from users where ID={0}", userid); //和数据库建立起连接 openDB(); using (cmd = new SqlCommand(s1, con)) { dr = cmd.ExecuteReader(); //查询有没有数据 if (dr.HasRows) { //如果有,就执行删除语句,得到一个s2 string s2 = string.Format("update Users set username='{0}' where ID={1}", TxtuUserName.Text.Trim(),userid); dr.Dispose(); dr.Close(); using (cmd = new SqlCommand(s2, con)) { cmd.ExecuteNonQuery(); } } else { //没有就 Response.Write("该用户ID不存在!"); } } BindUser(); } } }
3.Get传值:跳转页面.cs页面
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Text; using System.Configuration; using System.Data.SqlClient; namespace _20160520 { public partial class UserInfo : System.Web.UI.Page { private string conStr = ConfigurationManager.ConnectionStrings["mySchool"].ToString(); //把这个字符串传进去 //SqlConnection con = new SqlConnection(conStr); SqlConnection con = null;//相当于是电话 SqlCommand cmd = null;//执行sql语句 SqlDataReader dr = null;//用于储存查询结果 private void openDB() { con = new SqlConnection(conStr); con.Open();//和数据库建立起了连接 //我们单独把这两句话封装起来直接调用就好 } //private int _id = 0; //public int id //{ // get // { // //return _userId; // //传过来的id有可能为空,也有可能不是整数 // //它也有可能不是整数,我们就写一个异常 // try // { // //判断它是否为空?get的作用是属性,属性是判断它的读和写,Request.QueryString["ID"]里的id要与Eval("ID")的一致 // //==nul等于空,就让它等于0,不等于空, // _id = Request.QueryString["ID"] == null ? 0 : Convert.ToInt32(Request.QueryString["ID"].ToString()); // } // catch // { // _id = 0; // } // return _id;//这样就得到了传过来的id // } // set { _id = value; } //} private int _id = 0; public int Id { get { try { _id = Request.QueryString["ID"] == null ? 0 : Convert.ToInt32(Request.QueryString["ID"].ToString()); } catch { _id = 0; } return _id; } set { _id = value; } } protected void Page_Load(object sender, EventArgs e) { } //这样就得到了传过来的id,拼凑出来的字符串显示在前端,更多使用这个GridView只能显示表格的形式 public string GetUserInfor() { //拼凑字符串需要引用命名空间using System.Text; StringBuilder sb = new StringBuilder(); //先得到内容 //判断一下id是否>0,>0我们在拼凑 if (Id > 0) { sb.Append(@"<div class=""da"">"); sb.Append("<table>"); openDB(); string sql = string.Format("select * from users where ID={0}",Id); using (cmd = new SqlCommand(sql, con)) { using (dr = cmd.ExecuteReader()) { //dr = cmd.ExecuteReader(); //对这里面的内容进行读数据,读数据就要进行拼凑字符串 if (dr.Read()) { //数据里面的用户名怎么获取到? sb.Append(string.Format("<tr><td>用户名:</td><td>{0}</td></tr>", dr["userName"].ToString())); sb.Append(string.Format("<tr><td>密码:</td><td>{0}</td></tr>", dr["PWD"].ToString())); sb.Append(string.Format("<tr><td>姓名:</td><td>{0}</td></tr>", dr["loginname"].ToString())); sb.Append(string.Format("<tr><td>QQ:</td><td>{0}</td></tr>", dr["qq"].ToString())); sb.Append(string.Format("<tr><td>班级:</td><td>{0}</td></tr>", dr["classname"].ToString())); sb.Append(string.Format("<tr><td>信息:</td><td>{0}</td></tr>", dr["information"].ToString())); } } } sb.Append("</table>"); sb.Append("</div>"); } return sb.ToString(); } } }
4. 跳转页面前端页面
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UserInfo.aspx.cs" Inherits="_20160520.UserInfo" %> <!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> <%--后台有个字符串怎么显示在前端?前端怎么调用后台页面--%> <%=GetUserInfor() %> </div> </form> </body> </html>
效果显示:
本文来自博客园,作者:wangwangwangMax,转载请注明原文链接:https://www.cnblogs.com/wangwangwangMax/p/5527547.html