asp.net简单介绍

ASP.NET项目大概构造

最近,因为期末作业,于是写了一个ASP.NET项目,很简单,写了几天,感觉还行,于是分享一下。
.NET框架使用的语言有很多,而我的ASP.NET项目用的是C#。实话说,我这是第一次用C#写,感觉和java差不多。那我现在就简单说一下我的ASP.NET项目如何写的:
我的页面构造(不好看,现在有点后悔):
在这里插入图片描述
在这里插入图片描述
前端:
1.页面:和html有点不同:

  <tr>
                        <td style="text-align:center;" class="form-text">
                            用户名:
                        </td>
                        <td class="form-input">
                            <asp:TextBox ID="tbUSerName" runat="server">
                            </asp:TextBox>
                          <asp:RequiredFieldValidator ID="rfvName" runat="server" ControlToValidate="tbUserName" ErrorMessage="用户名不能为空"></asp:RequiredFieldValidator> 
                        </td>
                    </tr>
                    <tr>
                        <td style="text-align:center;" class="form-text">
                            密&nbsp;&nbsp;&nbsp;码:
                        </td>
                         <td>
                            <asp:TextBox ID="tbPassword" runat="server" TextMode="Password">
                            </asp:TextBox>
                            <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="tbPassword" ErrorMessage="密码不能为空"></asp:RequiredFieldValidator> 
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2" style="text-align:center;">
                            <asp:Button ID="btLogin" runat="server" OnClick="btLogin_Click" Text="登录" />
                        </td>
                    </tr>

显示效果如下:

2.css样式:和html差不多,没大有区别
引入css样式:

<link rel="stylesheet" href="../css/addcss.css" />

后台:因为我用的是web窗体,所以会自动生成后台:
在这里插入图片描述
页面加载时想调用这个方法:Page_Load
点击事件按钮调用的方法:btLogin_Click(object sender,EventArgs e):可以自动生成
1.跳转:

 Response.Redirect("FirstPage.aspx");

2.前端弹窗:像js的alert(“”)

 this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('登陆成功!')</script>");
  return;

3.获取前端页面的值:
第一种方法:
前端id.属性

string strName = tbUSerName.Text;
 string strPwd = tbPassword.Text.Trim();

第二种方法:
Request[id]

//下面的包括了单选框,复选框,下拉框,input等
string id = Guid.NewGuid().ToString("N");//生成uuid:只能用ndbpx
            string name = Request["name"];
            string age = Request["age"];
            // string sex1 = sex.SelectedValue;
            string sex = Request["sex"];
            string phone = Request["phone"];
            string grade = Request["grade"];
            string hobbies = "";
            foreach(ListItem item in hobby.Items)
            {
                if (item.Selected)
                {
                    hobbies += item.Value + ",";
                }
            }
            if (name == "" || age == "" || sex == "" || phone == "" || grade == "" || hobbies == "")
            {
                this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('信息填写不完整!')</script>");
                return;
            }
            string remarks = Request["remarks"] == null ? "" : Request["remarks"];

4.生成UUID:

string id = Guid.NewGuid().ToString("N");//生成uuid:注意:只能用ndbpx,自行百度

5.项页面输出内容,使页面显示后台传出的数据
前台:

<asp:Label ID="lblMsg" runat="server" Text="" Class="selectd"></asp:Label>

后台:

lblMsg.Text = "请重新选择";

6.页面之间通信:
a->b
a页面后台代码发送:

扫描二维码关注公众号,回复: 4653309 查看本文章
 Session["id"] = str[0];
                Session["name"] = str[1];
                Session["age"] = str[2];
                Session["sex"] = str[3];
                Session["phone"] = str[4];
                Session["grade"] = str[5];
                Session["hobby"] = str[6];
                Session["remarks"] = str[7];
                Response.Redirect("update.aspx");

b页面后台代码接收:

id = (string)Session["id"];
            name.Text = (string)Session["name"];
            phone.Text = (string)Session["phone"];
            sex.Text = (string)Session["sex"];
            age.Text = (string)Session["age"];
            string grade1 = (string)Session["grade"];
            ListItem item1 = grade.Items.FindByValue(grade1);
            if (item1 != null)
            {
                item1.Selected = true;
            }
            char c = ',';
            string[] str = ((string)Session["hobby"]).Split(c);
            foreach (string val in str)
            {
                ListItem item = hobby.Items.FindByValue(val);
                if (item != null)
                {
                    item.Selected = true;
                }
            }
              remarks.Text = (string)Session["remarks"];

7.连接数据库:ADO.NET操作数据库
修改代码里的MySqlCon,这一步用来连接到数据库,至关重要。

在“服务器资源管理”处选中数据库,然后可以在“属性”窗口找到“连接字符串”,复制其内容,赋给MySqlCon。比如我修改后是:
Data Source=MS-20180307VTBY\SQLEXPRESS;Initial Catalog=member;Integrated Security=True
在这里插入图片描述

完成这些操作后,就可以在form里写代码来修改数据库了。
8.与数据库的操作:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Data;
namespace WebApplication1.ado
{
    public class Member
    {
        private string MySqlCon = "Data Source=MS-20180307VTBY\\SQLEXPRESS;Initial Catalog=member;Integrated Security=True";    //在vs中的数据库的详细信息中查找复制

        //其实是相当于提供一个可以传参的函数,到时候写一个sql语句,存在string里,传给这个函数,就会自动执行。
        public DataTable ExecuteQuery(string sqlStr)      //用于查询;DataTable
        {
            SqlConnection con = new SqlConnection(@MySqlCon);
            con.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = sqlStr;
            DataTable dt = new DataTable();
            SqlDataAdapter msda;
            msda = new SqlDataAdapter(cmd);
            msda.Fill(dt);
            con.Close();
            return dt;      //返回查询出的数据表
        }
        public Boolean ExecuteQuery1(string sqlStr)      //用于查询;Boolean
        {
            SqlConnection con = new SqlConnection(@MySqlCon);
            con.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = sqlStr;
            SqlDataReader dr = cmd.ExecuteReader();
            Boolean b = false;
            if (dr.HasRows)
            {
                b = true;
            }
            else
            {
                b = false;
            }
            con.Close();
            return b; //返回boolean表示是否查询出数据
        }
        public string[] ExecuteQuery2(string sqlStr)      //用于查询;string[]
        {
            SqlConnection con = new SqlConnection(@MySqlCon);
            con.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = sqlStr;
            SqlDataReader dr = cmd.ExecuteReader();
            string[] str = new string[8];
            if (dr.HasRows)
            {
                dr.Read();
                dr["sex"].ToString();
                for(int i = 0; i <= 7; i++)
                {
                    str[i] = (dr.GetString(i)==null|| dr.GetString(i).Length==0)?"": dr.GetString(i);
                }
            }
            else
            {
                
            }
            con.Close();
            return str; 
        }
        public int ExecuteUpdate(string sqlStr)      //用于增删改;
        {
            SqlConnection con = new SqlConnection(@MySqlCon);
            con.Open();
            SqlCommand cmd = new SqlCommand();
            cmd.Connection = con;
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = sqlStr;
            int iud = 0;
            iud = cmd.ExecuteNonQuery();
            con.Close();
            return iud;    //返回受影响的行数
        }

    }
}

如:
查询:

string str = "<table border='1' width='100%'><tr>";
            Member member = new Member();
            string sql = "select * from member";
            DataTable table = member.ExecuteQuery(sql);
            //输出表的列名
            for(int i = 0; i < table.Columns.Count; i++)
            {
                str = str + "<th colspan=\"2\" style=\"text - align: center; \">" + table.Columns[i].ColumnName + "</th>";
            }
            str = str + "</tr>";
            //输出表的数据
            for(int i = 0; i < table.Rows.Count; i++)
            {
                DataRow row = table.Rows[i];
                str = str + "<tr>";
                for(int j = 0; j < table.Columns.Count; j++)
                {
                    str = str + "<td colspan=\"2\" style=\"text - align: center; \">" + row[j]+"</td>";
                }
                str = str + "</tr>";
            }
            str = str + "</table>";
            lblMsg.Text = str;

详解在:https://blog.csdn.net/kiss__soul/article/details/80316788

好了,暂时就先这些吧,其实这asp.net和java的某些框架差不多,如果看不懂的话,我还有完整项目(包括数据库文件,是sqlServer数据库)在“我的资源”里,可以下载,直接能运行,里面注解很清晰。

猜你喜欢

转载自blog.csdn.net/weixin_43075298/article/details/85257443