ASP.NET MVC与Sql Server交互, 插入数据
在"ASP.NET MVC与Sql Server建立连接"中,与Sql Server建立了连接。本篇实践向Sql Server中插入数据。
在数据库帮助类中增加插入数据的方法。
public class SqlDB{protected SqlConnection conn;//打开连接public bool OpenConnection(){conn = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].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 (Exception ex){return false;}}//插入数据public int InsertData(string sql){int lastId = 0;//string query = sql + ";SELECT @@Identity;";try{if(conn.State.ToString()=="Open"){SqlCommand cmd = new SqlCommand(sql, conn);//cmd.ExecuteNonQuery();lastId = ToInt(cmd.ExecuteScalar());//返回第一行的第一列}return ToInt(lastId);}catch (Exception ex){return 0;}}//转换成整型private int ToInt(object o){try{return int.Parse(o.ToString());}catch (Exception ex){return 0;}}}
创建一个对应数据库Product的视图模型。
public class ProductVm{[Required(ErrorMessage="必填")][StringLength(16)]public string Name { get; set; }[Required(ErrorMessage = "必填")][StringLength(16)]public string Quantity { get; set; }[Required(ErrorMessage = "必填")][StringLength(16)]public string Price { get; set; }}
在TestController中增加一个处理添加数据的2个Action。
public class TestController : Controller{private SqlDB _db = new SqlDB();//// GET: /Test/public ActionResult Index(){bool r = _db.OpenConnection();if (r){return Content("连接成功");}else{return Content("连接失败");}}public ActionResult AddProduct(){return View();}[HttpPost][ValidateAntiForgeryToken]public ActionResult AddProduct(ProductVm productVm){if(ModelState.IsValid){_db.OpenConnection();int result = _db.InsertData("insert into Product(Name,quantity,Price) values('"+productVm.Name+"','"+productVm.Quantity+"','"+productVm.Price+"')");if(result > 0){ModelState.AddModelError("success", "创建成功");}else{ModelState.AddModelError("error", "创建失败");}_db.CloseConnection();return View();}else{return View(productVm);}}}
在对应的Test/AddProduct视图中:
@model Portal.Models.ProductVm@{ViewBag.Title = "AddProduct";Layout = "~/Views/Shared/_Layout.cshtml";}<h2>创建产品</h2>@using (Html.BeginForm("AddProduct", "Test", new { @id = "addForm" }, FormMethod.Post)){@Html.AntiForgeryToken()<div class="form-horizontal">@Html.ValidationSummary(true)<div class="form-group">@Html.LabelFor(model => model.Name, new { @class = "control-label col-md-2" })<div class="col-md-10">@Html.EditorFor(model => model.Name)@Html.ValidationMessageFor(model => model.Name)</div></div><div class="form-group">@Html.LabelFor(model => model.Quantity, new { @class = "control-label col-md-2" })<div class="col-md-10">@Html.EditorFor(model => model.Quantity)@Html.ValidationMessageFor(model => model.Quantity)</div></div><div class="form-group">@Html.LabelFor(model => model.Price, new { @class = "control-label col-md-2" })<div class="col-md-10">@Html.EditorFor(model => model.Price)@Html.ValidationMessageFor(model => model.Price)</div></div><div class="form-group"><div class="col-md-offset-2 col-md-10"><input type="submit" value="创建" class="btn btn-default" /></div></div></div>}<div>@Html.ActionLink("Back to List", "Index")</div>
ASP.NET MVC与Sql Server交互, 插入数据的更多相关文章
- ASP.NET MVC与Sql Server交互,把字典数据插入数据库
在"ASP.NET MVC与Sql Server交互, 插入数据"中,在Controller中拼接sql语句.比如: _db.InsertData("insert int ...
- Incorporating ASP.NET MVC and SQL Server Reporting Services, Part 2
In the last issue, I introduced you to the basics of incorporating SQL Server Reporting Services int ...
- SQL Server 批量插入数据的两种方法
在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍 SQL Server支持的两种批 ...
- SQL Server 批量插入数据的两种方法(转)
此文原创自CSDN TJVictor专栏:http://blog.csdn.net/tjvictor/archive/2009/07/18/4360030.aspx 在SQL Server 中插入一条 ...
- 转:SQL Server 批量插入数据的两种方法
在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍SQL Server支持的两种批量 ...
- Incorporating ASP.NET MVC and SQL Server Reporting Services, Part 1
Your ASP.NET MVC application needs reports. What do you do? In this article, I will demonstrate how ...
- ASP.NET MVC与Sql Server建立连接
用惯了使用Entity Framework连接数据库,本篇就来体验使用SqlConnection连接数据库. 打开Sql Server 2008,创建数据库,创建如下表: create table P ...
- asp.net mvc entityframework sql server 迁移至 mysql方法以及遇到的问题
背景: 我原来的项目是asp.net mvc5 + entityframework 6.4 for sql server(localdb,sql server),现在需要把数据库切换成mysql,理论 ...
- SQL Server返回插入数据的ID和受影响的行数
首先看看数据库里面的数据(S_Id为自增长标识列): sql server 中返回上一次插入数据的ID(标识值)有三种方式: 第一种 @@IDENTITY: insert into Student(S ...
随机推荐
- linux网络编程--Circular Buffer(Ring Buffer) 环形缓冲区的设计与实现【转】
转自:https://blog.csdn.net/yusiguyuan/article/details/18368095 1. 应用场景 网络编程中有这样一种场景:需要应用程序代码一边从TCP/IP协 ...
- request_irq与request_threaded_irq
/* * Allocate the IRQ */ #if 0 retval = request_irq(uap->port.irq, pl011_int, 0, "uart-pl011 ...
- c#按字符串中的数字排序问题
在.net 的framewrok框架中提供的排序方法中,如string.sort() 或ArrayList.Sort()方法.这两个方法对字符串排序时,如果字符串中含有数字,则不会按数字大小排序.如: ...
- Vue中发送ajax请求——axios使用详解
axios 基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 node.js 中使用 功能特性 在浏览器中发送 XMLHttpRequests 请求 在 node.js 中发送 htt ...
- tensorflow variable的保存和修改(加载一部分variable到新的model中)
link: https://www.tensorflow.org/guide/saved_model 中文博客:https://blog.csdn.net/Searching_Bird/article ...
- 常用的 Windows 键
常用的 Windows 键 Windows 键 + 空格键 功能:透明化所有窗口,快速查看桌面.使用此快捷键可以立即将目前所有打开的窗口透明化,以便查看桌面. Windows 键 + 字母键“D” ...
- Java编程的逻辑 (28) - 剖析包装类 (下)
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...
- activeMQ安全配置及常见问题解决
https://blog.csdn.net/dandan2zhuzhu/article/details/78461872
- Java第三阶段学习(十三、会话技术、Cookie技术与Session技术)
一.会话技术 1. 存储客户端状态 会话技术是帮助服务器记住客户端状态(区分客户端)的. 2. 会话技术 从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,称为一次会话.会话技术就是记录这 ...
- API的防重
说说API的防重放机制 2017-03-20 18:19 by 轩脉刃, 685 阅读, 7 评论, 收藏, 编辑 说说API的防重放机制 我们在设计接口的时候,最怕一个接口被用户截取用于重放攻击.重 ...