找回密码
 会员注册
查看: 211|回复: 0

asp.net简单介绍(还有完整项目资源可以下载)

[复制链接]

250

主题

1

回帖

819

积分

管理员

积分
819
发表于 2024-2-29 08:50:08 | 显示全部楼层 |阅读模式

ASP.NET项目大概构造

最近,因为期末作业,于是写了一个ASP.NET项目,不是很难,用vs2017写的(vs还可以的,挺好用的,特别是前端的路径选择真的是好啊!!!),写了几天,感觉还行,于是分享一下。
vs2017安装使用:
https://blog.csdn.net/qq_36556893/article/details/79430133
.NET框架使用的语言有很多,而我的ASP.NET项目用的是C#。实话说,我这是第一次用C#写,感觉和java差不多。那我现在就简单说一下我的ASP.NET项目如何写的:
我的页面构造(不好看,有点混乱,现在有点后悔-。-):

在这里插入图片描述

在这里插入图片描述

前端:

1.页面:和html有点不同:

  1. <tr>
  2. <td style="text-align:center;" class="form-text">
  3. 用户名:
  4. </td>
  5. <td class="form-input">
  6. <asp:TextBox ID="tbUSerName" runat="server">
  7. </asp:TextBox>
  8. <asp:RequiredFieldValidator ID="rfvName" runat="server" ControlToValidate="tbUserName" ErrorMessage="用户名不能为空"></asp:RequiredFieldValidator>
  9. </td>
  10. </tr>
  11. <tr>
  12. <td style="text-align:center;" class="form-text">
  13. 密&nbsp;&nbsp;&nbsp;码:
  14. </td>
  15. <td>
  16. <asp:TextBox ID="tbPassword" runat="server" TextMode="Password">
  17. </asp:TextBox>
  18. <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="tbPassword" ErrorMessage="密码不能为空"></asp:RequiredFieldValidator>
  19. </td>
  20. </tr>
  21. <tr>
  22. <td colspan="2" style="text-align:center;">
  23. <asp:Button ID="btLogin" runat="server" OnClick="btLogin_Click" Text="登录" />
  24. </td>
  25. </tr>
复制代码

显示效果如下:

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

引入css样式:

  1. <link rel="stylesheet" href="../css/addcss.css" />
复制代码

后台:因为我用的是web窗体,所以会自动生成后台:

在这里插入图片描述

页面加载时想调用这个方法:Page_Load
点击事件按钮调用的方法:btLogin_Click(object sender,EventArgs e):可以自动生成

1.跳转:

  1. Response.Redirect("FirstPage.aspx");
复制代码

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

  1. this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('登陆成功!')</script>");
  2. return;
复制代码

3.获取前端页面的值:

第一种方法:
前端id.属性

  1. string strName = tbUSerName.Text;
  2. string strPwd = tbPassword.Text.Trim();
复制代码

第二种方法:
Request[id]

  1. //下面的包括了单选框,复选框,下拉框,input等
  2. string id = Guid.NewGuid().ToString("N");//生成uuid:只能用ndbpx
  3. string name = Request["name"];
  4. string age = Request["age"];
  5. // string sex1 = sex.SelectedValue;
  6. string sex = Request["sex"];
  7. string phone = Request["phone"];
  8. string grade = Request["grade"];
  9. string hobbies = "";
  10. foreach(ListItem item in hobby.Items)
  11. {
  12. if (item.Selected)
  13. {
  14. hobbies += item.Value + ",";
  15. }
  16. }
  17. if (name == "" || age == "" || sex == "" || phone == "" || grade == "" || hobbies == "")
  18. {
  19. this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('信息填写不完整!')</script>");
  20. return;
  21. }
  22. string remarks = Request["remarks"] == null ? "" : Request["remarks"];
复制代码

4.生成UUID:

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

c#生成UUID的方法:https://blog.csdn.net/csj1314520/article/details/53033447

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

前台:

  1. <asp:Label ID="lblMsg" runat="server" Text="" Class="selectd"></asp:Label>
复制代码

后台:

  1. lblMsg.Text = "请重新选择";
复制代码

6.页面之间通信:

a->b
a页面后台代码发送:

  1. Session["id"] = str[0];
  2. Session["name"] = str[1];
  3. Session["age"] = str[2];
  4. Session["sex"] = str[3];
  5. Session["phone"] = str[4];
  6. Session["grade"] = str[5];
  7. Session["hobby"] = str[6];
  8. Session["remarks"] = str[7];
  9. Response.Redirect("update.aspx");
复制代码

b页面后台代码接收:

  1. id = (string)Session["id"];
  2. name.Text = (string)Session["name"];
  3. phone.Text = (string)Session["phone"];
  4. sex.Text = (string)Session["sex"];
  5. age.Text = (string)Session["age"];
  6. string grade1 = (string)Session["grade"];
  7. ListItem item1 = grade.Items.FindByValue(grade1);
  8. if (item1 != null)
  9. {
  10. item1.Selected = true;
  11. }
  12. char c = ',';
  13. string[] str = ((string)Session["hobby"]).Split(c);
  14. foreach (string val in str)
  15. {
  16. ListItem item = hobby.Items.FindByValue(val);
  17. if (item != null)
  18. {
  19. item.Selected = true;
  20. }
  21. }
  22. remarks.Text = (string)Session["remarks"];
复制代码

7.连接数据库:ADO.NET操作数据库

sqlserver数据库下载:
https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=community&rel=15
安装教程:https://blog.csdn.net/xyy410874116/article/details/26349465
修改代码里的MySqlCon,这一步用来连接到数据库,至关重要。

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

在这里插入图片描述

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

8.与数据库的操作:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.Data.SqlClient;
  8. using System.Data;
  9. namespace WebApplication1.ado
  10. {
  11. public class Member
  12. {
  13. private string MySqlCon = "Data Source=MS-20180307VTBY\\SQLEXPRESS;Initial Catalog=member;Integrated Security=True"; //在vs中的数据库的详细信息中查找复制
  14. //其实是相当于提供一个可以传参的函数,到时候写一个sql语句,存在string里,传给这个函数,就会自动执行。
  15. public DataTable ExecuteQuery(string sqlStr) //用于查询;DataTable
  16. {
  17. SqlConnection con = new SqlConnection(@MySqlCon);
  18. con.Open();
  19. SqlCommand cmd = new SqlCommand();
  20. cmd.Connection = con;
  21. cmd.CommandType = CommandType.Text;
  22. cmd.CommandText = sqlStr;
  23. DataTable dt = new DataTable();
  24. SqlDataAdapter msda;
  25. msda = new SqlDataAdapter(cmd);
  26. msda.Fill(dt);
  27. con.Close();
  28. return dt; //返回查询出的数据表
  29. }
  30. public Boolean ExecuteQuery1(string sqlStr) //用于查询;Boolean
  31. {
  32. SqlConnection con = new SqlConnection(@MySqlCon);
  33. con.Open();
  34. SqlCommand cmd = new SqlCommand();
  35. cmd.Connection = con;
  36. cmd.CommandType = CommandType.Text;
  37. cmd.CommandText = sqlStr;
  38. SqlDataReader dr = cmd.ExecuteReader();
  39. Boolean b = false;
  40. if (dr.HasRows)
  41. {
  42. b = true;
  43. }
  44. else
  45. {
  46. b = false;
  47. }
  48. con.Close();
  49. return b; //返回boolean表示是否查询出数据
  50. }
  51. public string[] ExecuteQuery2(string sqlStr) //用于查询;string[]
  52. {
  53. SqlConnection con = new SqlConnection(@MySqlCon);
  54. con.Open();
  55. SqlCommand cmd = new SqlCommand();
  56. cmd.Connection = con;
  57. cmd.CommandType = CommandType.Text;
  58. cmd.CommandText = sqlStr;
  59. SqlDataReader dr = cmd.ExecuteReader();
  60. string[] str = new string[8];
  61. if (dr.HasRows)
  62. {
  63. dr.Read();
  64. dr["sex"].ToString();
  65. for(int i = 0; i <= 7; i++)
  66. {
  67. str[i] = (dr.GetString(i)==null|| dr.GetString(i).Length==0)?"": dr.GetString(i);
  68. }
  69. }
  70. else
  71. {
  72. }
  73. con.Close();
  74. return str;
  75. }
  76. public int ExecuteUpdate(string sqlStr) //用于增删改;
  77. {
  78. SqlConnection con = new SqlConnection(@MySqlCon);
  79. con.Open();
  80. SqlCommand cmd = new SqlCommand();
  81. cmd.Connection = con;
  82. cmd.CommandType = CommandType.Text;
  83. cmd.CommandText = sqlStr;
  84. int iud = 0;
  85. iud = cmd.ExecuteNonQuery();
  86. con.Close();
  87. return iud; //返回受影响的行数
  88. }
  89. }
  90. }
复制代码

如:
查询:

  1. string str = "<table border='1' width='100%'><tr>";
  2. Member member = new Member();
  3. string sql = "select * from member";
  4. DataTable table = member.ExecuteQuery(sql);
  5. //输出表的列名
  6. for(int i = 0; i < table.Columns.Count; i++)
  7. {
  8. str = str + "<th colspan="2" style="text - align: center; ">" + table.Columns[i].ColumnName + "</th>";
  9. }
  10. str = str + "</tr>";
  11. //输出表的数据
  12. for(int i = 0; i < table.Rows.Count; i++)
  13. {
  14. DataRow row = table.Rows[i];
  15. str = str + "<tr>";
  16. for(int j = 0; j < table.Columns.Count; j++)
  17. {
  18. str = str + "<td colspan="2" style="text - align: center; ">" + row[j]+"</td>";
  19. }
  20. str = str + "</tr>";
  21. }
  22. str = str + "</table>";
  23. lblMsg.Text = str;
复制代码

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

问题解决:

可能会出现一些问题,如:WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping
其实就是缺少路径或者运行空间
详解:https://blog.csdn.net/ayang1986/article/details/45042909
好了,暂时就先这些吧,其实这asp.net和java的某些框架差不多,如果看不懂的话,我还有完整项目(包括数据库文件,是sqlServer数据库)在“我的资源”里,可以下载,直接能运行,里面注解很清晰。

项目下载:

https://download.csdn.net/download/weixin_43075298/10890259


来源:https://blog.csdn.net/weixin_43075298/article/details/85257443
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?会员注册

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-25 13:34 , Processed in 0.306414 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表