.net的B/S架构开发主要是MVC和webform的开发,因为WebForm是微软开发的一款产品,它将用户的请求和响应都封装为控件。让开发者认为自己是在操作一个windows界面(和winform也是差不多的)。极大地提高了开发效率。而MVC是由视图(view),控制器(controller),模型层三部分组成。所以它也是同时提供了对 HTML、CSS 和 JavaScript 的完全控制。两者算是各有千秋,社会上都有着各种不一样的看法,有的人认为MVC比较好,也有人认为用webform开发比较好。今天也是给大家带来了webform的最基础的整删改查。
这是一张关于添加案例图
第一步:搭建数据库,数据库的代码我已经写到了下面
CREATE DATABASE KUBLL
USE KUBLLCREATE TABLE COUNTRY --国家表
(CID INT PRIMARY KEY IDENTITY,GUOJIA VARCHAR(50)
)CREATE TABLE BIAO --景点表
(ID INT PRIMARY KEY IDENTITY,NAME VARCHAR(50),QUYU VARCHAR(20),PIAOJIA INT,COID INT FOREIGN KEY REFERENCES COUNTRY(CID),MIAOSHU VARCHAR(MAX),ZT VARCHAR(20)
)
新建项目
搭建三层框架
添加引用,DAL层(数据访问层)引用MODER层(模型层),BLL层(业务逻辑层)引用DAL层和MODER层,而我自己建的这个项目生成的这个xinjian其实是UI层(界面层),他是可以引用BLL层和MODER层
再到各个层的命名空间上面引用
怎么去写MODER层(模型层)根据数据库的字段去写
接下来就是去写DAL层(数据访问层)拉一个DBHelper,下面是我的一个DBHelper的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Data;
using System.Reflection;
using System.Net;
using System.Net.Sockets;namespace DAL
{public class DBHelper{private SqlConnection conn = null;/// <summary>/// 构造函数/// </summary>public DBHelper(){if (conn == null){conn = new SqlConnection("Data Source=.;Initial Catalog=MVCWeek02;Integrated Security=True");}}/// <summary>/// 返回DataTable查询结果/// </summary>/// <param name="sql"></param>/// <param name="par"></param>/// <returns></returns>public DataTable GetTable(string sql, SqlParameter[] par = null){try{SqlCommand com = new SqlCommand(sql, conn);if (par != null){com.Parameters.AddRange(par);}SqlDataAdapter ada = new SqlDataAdapter(com);DataTable dt = new DataTable();ada.Fill(dt);ada.Dispose();if (conn.State == ConnectionState.Open){this.Close();}return dt;}catch (Exception ex){if (conn.State == ConnectionState.Open){this.Close();}throw;}}/// <summary>/// 返回List查询结果/// </summary>/// <param name="sql"></param>/// <param name="par"></param>/// <returns></returns>public List<T> GetToList<T>(string sql, SqlParameter[] par = null){List<T> li = DataTableToList<T>(GetTable(sql));return li;}/// <summary>/// 返回查询结果首行首列/// </summary>/// <param name="sql"></param>/// <param name="par"></param>/// <returns></returns>public object ExecuteScalar(string sql, SqlParameter[] par = null){try{this.Open();SqlCommand com = new SqlCommand(sql, conn);if (par != null){com.Parameters.AddRange(par);}return com.ExecuteScalar();}catch (Exception ex){this.Close();throw;}}/// <summary>/// 返回执行结果受影响行数/// </summary>/// <param name="sql"></param>/// <param name="par"></param>/// <returns></returns>public int ExecuteNonQuery(string sql, SqlParameter[] par = null){try{this.Open();SqlCommand com = new SqlCommand(sql,conn);if (par != null){com.Parameters.AddRange(par);}return com.ExecuteNonQuery();}catch (Exception ex){this.Close();throw;}}/// <summary>/// Table转list集合/// </summary>/// <param name="dt"></param>/// <returns></returns>private static List<T> DataTableToList<T>(DataTable dt){//初始化值List<T> result = new List<T>();for (int i = 0; i < dt.Rows.Count; i++){T _t = (T)Activator.CreateInstance(typeof(T));PropertyInfo[] propertys = _t.GetType().GetProperties();foreach (PropertyInfo pro in propertys){for (int j = 0; j < dt.Columns.Count; j++){if (pro.Name.Equals(dt.Columns[j].ColumnName)){if (dt.Rows[i][j] != DBNull.Value){pro.SetValue(_t, dt.Rows[i][j], null);}else{pro.SetValue(_t, null, null);}break;}}}result.Add(_t);}return result;}/// <summary>/// 打开数据库链接/// </summary>private void Open(){if (conn.State != ConnectionState.Open){conn.Open();}}/// <summary>/// 关闭数据库链接/// </summary>private void Close(){if (conn.State != ConnectionState.Closed){conn.Dispose();}}}
}
改一下数据库的名字
实例化DBHelper
创建添加方法,里面写上SQL添加在语句
再返回到数据库中给国家表添加一些值
在DAL层中给国家表创建一个查询所有数据的方法
BLL:先实例化DAL层,再到DAL层把所有的方法复制到BLL层中
然后就是到界面层去添加web窗体搭建界面
配置完就是这样的
双击按钮进入后台
我们就是要在这里去写后台代码它和MVC的控制器作用是差不多的,先来绑定下拉
给绑定下拉附上默认值
通过后台进行传值
后台已经写好了,现在运行一下看看效果
这个时候我们可以去数据库中查看详情