.net的B/S架構開發主要是MVC和webform的開發,因爲WebForm是微軟開發的一款產品,它將用戶的請求和響應都封裝爲控件。讓開發者認爲自己是在操作一個windows界面(和winform也是差不多的)。極大地提高了開發效率。而MVC是由視圖(view),控制器(controller),模型層三部分組成。所以它也是同時提供了對 HTML、CSS 和 JavaScript 的完全控制。兩者算是各有千秋,社會上都有着各種不一樣的看法,有的人認爲MVC比較好,也有人認爲用webform開發比較好。今天也是給大家帶來了webform的最基礎的整刪改查。
這是一張關於添加案例圖
第一步:搭建數據庫,數據庫的代碼我已經寫到了下面
CREATE DATABASE KUBLL
USE KUBLL
CREATE 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的控制器作用是差不多的,先來綁定下拉
通過後臺進行傳值
後臺已經寫好了,現在運行一下看看效果
這個時候我們可以去數據庫中查看詳情