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 ...
随机推荐
- Windows修改默认远程端口号3389
1.打开注册表:运行-regedit: 2.HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\Wds\Repwd\ ...
- WPF 中定时器的使用
DispatcherTimer timer; private void Window_Loaded(object sender, RoutedEventArgs e) { timer = new Di ...
- phpMyAdmin setup.php脚本的任意PHP代码注入漏洞
phpMyAdmin (/scripts/setup.php) PHP 注入代码 此漏洞代码在以下环境测试通过: phpMyAdmin 2.11.4, 2.11.9.3, 2.11.9.4, ...
- P(查准率),R(查全率),F1 值
起源: 我们平时用的精度 accuracy,也就是整体的正确率 acc=predict_right_num/predict_num 这个虽然常用,但不能满足所有任务的需求.比如,因为香蕉太多了,也不能 ...
- 【Java】 子字符串的比较(substring的==与equal()使用)
public class Test { public static void main(String[] args) { String str1="good"; System.ou ...
- 006.MySQL双主-Master02可用配置
[root@Master02 ~]# vim /etc/keepalived/keepalived.conf ! Configuration File for keepalived global_de ...
- muduo学习笔记(二)Reactor关键结构
目录 muduo学习笔记(二)Reactor关键结构 Reactor简述 什么是Reactor Reactor模型的优缺点 poll简述 poll使用样例 muduo Reactor关键结构 Chan ...
- .NET工作准备--04ASP.NET
(已过时) ASP.NET 1.开发基础 *asp.net以什么形式运行?.net宿主的概念,ISAPI的概念,ASP.NET基本运行机制; .net宿主的概念:CLR被实现为一个标准的COM服务器组 ...
- 社会地位即服务, Status as a Service (一): 社交网络是一种 ICO 行为?
上周,看到 Eugene Wei 又发了一篇长文,Status as a Service (StaaS).状态即服务?服务器的状态吗?不知所言.抱着好奇,我打开了这篇文章,一看就是 3 个小时!
- Xamarin 2017.11.9更新
Xamarin 2017.11.9更新 本次更新主要针对Xamarin.iOS,适配了iOS 11.1和Xcode 9.1.Visual Studio 2017升级到15.4.3获得新功能.Visu ...