ASP.NET MVC使用ADO.NET连接数据库
深入理解ADO.NET友情链接:http://www.cnblogs.com/liuhaorain/category/352388.html
小白手把手:VS2017 SQL Server 2014
第一步:新建项目,选择Visual C#--ASP.NET Web Application(.NET Framework),键入工程名。确认后选择MVC模式,确认。

此时可看到工程目录包含Controllers,Modles,Views三层。运行程序即可看到VS自带的MVC模板。

第二步,新建工程完成后,进行数据库的连接,若还没有在数据库建好表,则先行建表,建好后进行以下操作。
点击工具栏的Tools--Connect to Database,填写你所连接的数据库的Server name,选择身份验证,输入用户名和密码,然后选择所要连接的数据库名称。

1.右键Models选择新建项目,选择Data--ADO.NET Entity Data Model,然后确认;

2.选择Code First from database,点击Next

3.在连接处选择起初我们建立好的连接,或者略过起初建立连接,在此处选择新建连接。

或
选择Yes,include the sensitive data in the connection string.点击Next,选择将要使用的数据库对象,包括“表”、“视图”、“存储过程和函数”。点击Finish.
完成后会看到Models文件夹添加了实体数据模型,Web.config文件添加了连接数据库配置。

<connectionStrings><add name="Joke" connectionString="data source=PA181;user id=sa;password=**;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" /></connectionStrings>
第三步,新建Controller,右键Controllers文件add--Controller,选择MVC5 Controller with read/write actions点击add,命名是后面Controller不要改动。
生成的controller中包含action:

第四步,在controllers文件中新建DBConnect类,用来进行数据库的连接读写操作。
using ADO.NET.test.Models;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data.SqlClient;
using System.Linq;
using System.Web; namespace ADO.NET.test.Controllers
{
public class DB
{
protected SqlConnection conn;
//打开连接
public bool OpenConnection()
{
conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Joke"].ConnectionString);
try
{
bool result = true;
if (conn.State.ToString() != "Open")
{
conn.Open();
}
return result;
}
catch (SqlException ex)
{
return false;
}
}
//关闭连接
public bool CloseConnection()
{
try
{
conn.Close();
return true;
}
catch (SqlException ex)
{
return false;
}
}
//显示
public List<Joke> Select()
{
SqlDataReader sdr;
List<Joke> list = new List<Joke>();
try
{
if (conn.State.ToString() == "Open")
{
SqlCommand cmd = new SqlCommand("Select * from Jokes", conn);
sdr = cmd.ExecuteReader();
while (sdr.Read())
{
Joke j = new Joke();
System.Diagnostics.Debug.WriteLine("ID:{0}\tcontent:{1}\tbelong:{2}\tstate:{3}\ttime:{4}", sdr["ID"], sdr["Content"], sdr["Belong"], sdr["State"], sdr["AddDate"]);
j.ID = Convert.ToInt32(sdr["ID"]);
j.Content = sdr["Content"].ToString();
j.Belong = sdr["Belong"].ToString();
j.State = Convert.ToInt32(sdr["State"]);
j.AddDate = Convert.ToDateTime(sdr["AddDate"]); list.Add(j);
}
}
}
catch (Exception e)
{
Console.WriteLine("Joke details wrong:{0}", e);
}
finally
{
conn.Close();
}
return list;
}
//Detail
public Joke Detail(int? id)
{
SqlDataReader sdr;
Joke j = new Joke();
System.Diagnostics.Debug.WriteLine("编号:{0}", id);
string sql = "Select * from Jokes where ID = @ID";
SqlParameter[] paras = new SqlParameter[]{//参数数组
new SqlParameter("@ID",System.Data.SqlDbType.Int)};
paras[].Value = id;//绑定ID
try
{
if (conn.State.ToString() == "Open")
{
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddRange(paras);
sdr = cmd.ExecuteReader();
while (sdr.Read())
{ System.Diagnostics.Debug.WriteLine("ID:{0}\tcontent:{1}\tbelong:{2}\tstate:{3}\ttime:{4}", sdr["ID"], sdr["Content"], sdr["Belong"], sdr["State"], sdr["AddDate"]);
j.ID = Convert.ToInt32(sdr["ID"]);
j.Content = sdr["Content"].ToString();
j.Belong = sdr["Belong"].ToString();
j.State = Convert.ToInt32(sdr["State"]);
j.AddDate = Convert.ToDateTime(sdr["AddDate"]);
}
}
}
catch (Exception e)
{
System.Diagnostics.Debug.WriteLine("Joke select wrong:{0}", e);
}
finally
{
conn.Close();
}
return j; }
//Create
public void Create(Joke joke)
{
//SqlDataReader sdr;
//string sql = "insert into Jokes(Content,Belong,State,AddDate)values('" + joke.Content + "','" + joke.Belong + "','" + joke.State + "','" + joke.AddDate + "')";
string sql = "insert into Jokes(Content,Belong,State,AddDate)values(@content,@belong,@state,@time)";
SqlParameter[] paras = new SqlParameter[]{//参数数组
new SqlParameter("@content",System.Data.SqlDbType.VarChar),
new SqlParameter("@belong",System.Data.SqlDbType.VarChar),
new SqlParameter("@state",System.Data.SqlDbType.Int),
new SqlParameter("@time",System.Data.SqlDbType.DateTime)};
paras[].Value = joke.Content;//绑定内容
paras[].Value = joke.Belong;//绑定署名
paras[].Value = joke.State;//绑定状态
paras[].Value = joke.AddDate;//绑定时间
try
{
if (conn.State.ToString() == "Open")
{
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddRange(paras);
cmd.ExecuteNonQuery();
System.Diagnostics.Debug.WriteLine("插入成功!");
}
}
catch (Exception e)
{
Console.WriteLine("Joke create wrong:{0}", e);
}
finally
{
conn.Close();
}
}
//Delete
public int Delete(int? id)
{
string sql = "delete from Jokes where ID= @ID";
SqlParameter[] paras = new SqlParameter[]{//参数数组
new SqlParameter("@ID",System.Data.SqlDbType.Int)};
paras[].Value = id;//绑定ID
int i = ;
try
{
if (conn.State.ToString() == "Open")
{
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddRange(paras);
i = cmd.ExecuteNonQuery();
System.Diagnostics.Debug.WriteLine("插入成功!");
}
}
catch (Exception e)
{
Console.WriteLine("Joke create wrong:{0}", e);
}
finally
{
conn.Close();
}
return i;
}
//update
public int Update(Joke joke)
{
string sql = "update Jokes set Content = @content,Belong = @belong where ID= @ID";
SqlParameter[] paras = new SqlParameter[]{//参数数组
new SqlParameter("@content",System.Data.SqlDbType.VarChar),
new SqlParameter("@belong",System.Data.SqlDbType.VarChar),
new SqlParameter("@ID",System.Data.SqlDbType.Int)};
paras[].Value = joke.Content;//绑定内容
paras[].Value = joke.Belong;//绑定署名
paras[].Value = joke.ID;//绑定ID
System.Diagnostics.Debug.WriteLine("SQL语句:{0}", sql);
int i = ;
try
{
if (conn.State.ToString() == "Open")
{
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.Parameters.AddRange(paras);
i = cmd.ExecuteNonQuery();
System.Diagnostics.Debug.WriteLine("更新成功!");
}
}
catch (Exception e)
{
Console.WriteLine("Joke update wrong:{0}", e);
}
finally
{
conn.Close();
}
return i;
}
}
}
第五步:在Views--Joke文件夹下建立对应的Controller返回显示页面。

第六步,App_Start--RouteConfig.cs修改路由,使初始页面指向Joke--Index.cshtml.

最后运行结果:

ASP.NET MVC使用ADO.NET连接数据库的更多相关文章
- CRUD Operations In ASP.NET MVC 5 Using ADO.NET
Background After awesome response of an published by me in the year 2013: Insert, Update, Delete In ...
- ASP.NET MVC + ADO.NET EF 项目实战(一):应用程序布局设计
什么叫上下文? 在你设计一个方法的时候,无法直接从方法参数或实例成员(字段或属性)获得的所有信息都是上下文.例如: 当前用户是谁? 刚才提供操作的数据库连接实例从哪里拿到? 这个方法从哪个 View ...
- ADO.NET .net core2.0添加json文件并转化成类注入控制器使用 简单了解 iTextSharp实现HTML to PDF ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下 C# AutoMapper 了解一下
ADO.NET 一.ADO.NET概要 ADO.NET是.NET框架中的重要组件,主要用于完成C#应用程序访问数据库 二.ADO.NET的组成 ①System.Data → DataTable, ...
- ASP.NET MVC+JQueryEasyUI1.4+ADO.NET Demo
1.JQueryEasyUI使用 JQuery EasyUI中文官网:http://www.jeasyui.net/ JQuery EasyUI中文官网下载地址:http://www.jeasyui. ...
- 第1章 (ASP.NET MVC简介)
一.MVC概念 MVC由三部分组成:视图(View).模型(Model).控制器(Controller)组成 二.运用VS创建MVC 1.新建一个"解决方案" 2.在"解 ...
- [ASP.NET MVC 小牛之路]06 - 使用 Entity Framework
在家闲着也是闲着,继续写我的[ASP.NET MVC 小牛之路]系列吧.在该系列的上一篇博文中,在显示书本信息列表的时候,我们是在程序代码中手工造的数据.本文将演示如何在ASP.NET MVC中使用E ...
- 如鹏网学习笔记(十五)ASP.NET MVC核心基础笔记
一.ASP.Net MVC简介 1,什么是ASP.NET MVC? HttpHandler是ASP.net的底层机制,如果直接使用HttpHandler进行开发难度比较大.工作量大.因此提供了ASP. ...
- ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借
ASP.NET MVC深入浅出系列(持续更新) 一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...
- ASP.net MVC 构建layui管理后台(构造基础仓储)<1>
本文章为ASP.net MVC 构建layui管理后台,第一篇. 使用EF+ado.net 实体数据模型模式进行底层的数据库连接. 在项目添加一个类库Model 在类库Model上添加一个ado.ne ...
随机推荐
- 第 15 章 位操作(fields)
/*----------------------------------- fields.c -- 定义并使用字段 -----------------------------------*/ #inc ...
- Linux下编辑、编译、调试命令总结——gcc和gdb描述
GCC gcc是linux系统集成的编译器.在linux环境下编辑程序,首先需要克服的便是没有集成开发环境的一键式操作所带来的麻烦.这其中涉及命令行操作.编译选项的设定.文件依赖关系的书写(makef ...
- [TJOI2018]教科书般的亵渎
嘟嘟嘟 题面挺迷的,拿第一个样例说一下: 放第一次亵渎,对答案产生了\(\sum_{i = 1} ^ {10} i ^ {m + 1} - 5 ^ {m + 1}\)的贡献,第二次亵渎产生了\(\su ...
- 图的M 着色问题
题目描述给定无向连通图G 和M 种不同的颜色,用这些颜色为图G 的各顶点着色,每个顶点着一种颜色.如果有一种着色法使G 中每条边的2 个顶点着不同的颜色,则称这个图是M 可着色的.图的M 着色问题是对 ...
- A - Divisors POJ - 2992 (组合数C的因子数)数学—大数
题意:就是求组合数C的因子的个数! 先说一下自己THL的算法,先把组合数求出来,然后将这个大数分解,得到各个素数的个数,再利用公式!用最快的大数分解算法 分析一下时间复杂度! n1/4但是分析一下 ...
- LINUX配置过程记录
http://blog.csdn.net/Houchaoqun_XMU/article/details/78869052 64 sudo apt-get update 0 打开终端的快捷键是Ctrl+ ...
- Linux企业运维人员最常用150个命令汇总 [转]
近来发现新手学习Linux记不住命令,不会分类.不会筛选重点,胡子眉毛一把抓当然记不住了. 特别整理Linux运维最常用150个命令和大家分享,大家学习命令不用在盲目了,根据分类,然后逐步学习! 命令 ...
- mybatis基础系列(四)——关联查询、延迟加载、一级缓存与二级缓存
关本文是Mybatis基础系列的第四篇文章,点击下面链接可以查看前面的文章: mybatis基础系列(三)——动态sql mybatis基础系列(二)——基础语法.别名.输入映射.输出映射 mybat ...
- 剑指offer.在O(1)时间内删除链表节点
给定单向链表的一个节点指针,定义一个函数在O(1)时间删除该结点.假设链表一定存在,并且该节点一定不是尾节点. 样例 输入:链表 1->4->6->8 删掉节点:第2个节点即6(头节 ...
- java 学习------JDK1.8安装与配置
1.下在JDK 1.8 2.解压安装 (一般选择默认路径安装) 3.配置环境变量 (我的电脑是windows10 系统) (1)计算机→属性→高级系统设置→高级→环境变量 (2)添加 JAVA ...