.net MVC(存储过程+SQLHelper)
连接数据库帮助类:SqlHelper.cs(用的时候只需调用其中的方法名,作用:可避免在DAL层重复地写连接数据库的代码)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.SqlClient; using System.Configuration; using System.Data; using System.Collections;namespace DAL {public class SqlHelper{private static string connectionString = ConfigurationManager.ConnectionStrings["connectionString"].ToString();public static int ExecuteNonQuery(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters){SqlCommand cmd = new SqlCommand();using (SqlConnection conn = new SqlConnection(connectionString)){PrepareCommand(cmd, commandType, conn, commandText, commandParameters);int val = cmd.ExecuteNonQuery();return val;}}public static SqlDataReader GetReader(string sql){SqlConnection conn = new SqlConnection(connectionString);SqlCommand cmd = new SqlCommand(sql, conn);try{conn.Open();return cmd.ExecuteReader(CommandBehavior.CloseConnection);}catch (Exception ex){throw ex;}}public static int ExecuteNonQuery(string connectionString, string spName, params object[] parameterValues){using (SqlConnection conn = new SqlConnection(connectionString)){SqlCommand cmd = new SqlCommand();PrepareCommand(cmd, conn, spName, parameterValues);int val = cmd.ExecuteNonQuery();return val;}}public static SqlDataReader ExecuteReader(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters){SqlConnection conn = new SqlConnection(connectionString);try{SqlCommand cmd = new SqlCommand();PrepareCommand(cmd, commandType, conn, commandText, commandParameters);SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);return rdr;}catch{conn.Close();throw;}}public static SqlDataReader ExecuteReader(string connectionString, string spName, params object[] parameterValues){SqlConnection conn = new SqlConnection(connectionString);try{SqlCommand cmd = new SqlCommand();PrepareCommand(cmd, conn, spName, parameterValues);SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);return rdr;}catch{conn.Close();throw;}}public static DataSet ExecuteDataset(string connectionString, string spName, params object[] parameterValues){using (SqlConnection conn = new SqlConnection(connectionString)){SqlCommand cmd = new SqlCommand();PrepareCommand(cmd, conn, spName, parameterValues);using (SqlDataAdapter da = new SqlDataAdapter(cmd)){DataSet ds = new DataSet();da.Fill(ds);return ds;}}}public static DataSet ExecuteDataset(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters){using (SqlConnection conn = new SqlConnection(connectionString)){SqlCommand cmd = new SqlCommand();PrepareCommand(cmd, commandType, conn, commandText, commandParameters);using (SqlDataAdapter da = new SqlDataAdapter(cmd)){DataSet ds = new DataSet();da.Fill(ds);return ds;}}}public static object ExecuteScalar(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters){SqlCommand cmd = new SqlCommand();using (SqlConnection conn = new SqlConnection(connectionString)){PrepareCommand(cmd, commandType, conn, commandText, commandParameters);object val = cmd.ExecuteScalar();return val;}}public static object ExecuteScalar(string connectionString, string spName, params object[] parameterValues){SqlCommand cmd = new SqlCommand();using (SqlConnection conn = new SqlConnection(connectionString)){PrepareCommand(cmd, conn, spName, parameterValues);object val = cmd.ExecuteScalar();return val;}}public static void PrepareCommand(SqlCommand cmd, CommandType commandType, SqlConnection conn, string commandText, SqlParameter[] cmdParms){//打开连接if (conn.State != ConnectionState.Open)conn.Open();//设置SqlCommand对象cmd.Connection = conn;cmd.CommandText = commandText;cmd.CommandType = commandType;if (cmdParms != null){foreach (SqlParameter parm in cmdParms)cmd.Parameters.Add(parm);}}public static void PrepareCommand(SqlCommand cmd, SqlConnection conn, string spName, params object[] parameterValues){//打开连接if (conn.State != ConnectionState.Open)conn.Open();//设置SqlCommand对象cmd.Connection = conn;cmd.CommandText = spName;cmd.CommandType = CommandType.StoredProcedure;//获取存储过程的参数 SqlCommandBuilder.DeriveParameters(cmd);//移除Return_Value 参数cmd.Parameters.RemoveAt(0);//设置参数值if (parameterValues != null){for (int i = 0; i < cmd.Parameters.Count; i++){cmd.Parameters[i].Value = parameterValues[i];}}}}}
用法案例1:
![](/assets/blank.gif)
![](/assets/blank.gif)
//增加数据public bool CreateUserBySqlbool(User userAdd){SqlParameter[] cmdParms = new SqlParameter[]{new SqlParameter("@UserNum",userAdd.UserNum),new SqlParameter("@UserName ", userAdd.UserName),new SqlParameter("@UserPassword ", userAdd.UserPassword),new SqlParameter("@UserPower",userAdd.UserPower),new SqlParameter("@UserSex",userAdd.UserSex),new SqlParameter("@UserAge",userAdd.UserAge),new SqlParameter("@UserIDCardNum",userAdd.UserIDCardNum),new SqlParameter("@UserPhone", userAdd.UserPhone ),new SqlParameter("@UserEmail", userAdd.UserEmail),new SqlParameter("@UserPhoto", userAdd.UserPhoto),new SqlParameter("@UserAddress", userAdd.UserAddress),new SqlParameter("@Remarks", userAdd.Remarks)};string proc = "spCreateUserBySql";int result = SqlHelper.ExecuteNonQuery(connectionString, CommandType.StoredProcedure, proc, cmdParms);if (result > 0){return true;}else{return false;}}
DAL层的增加数据
用法案例2:将执行的结果强行转换为int型
int result = (int)SqlHelper.ExecuteScalar(connectionString, CommandType.StoredProcedure, proc, cmdParms);
用法案例3:返回 DataSet列表
关键代码: DataSet ds = SqlHelper.ExecuteDataset(connectionString, CommandType.StoredProcedure, 存储过程名称, cmdPara);
![](/assets/blank.gif)
![](/assets/blank.gif)
//关键字查询public List<User> GetUserBySql(string UserName){SqlParameter[] cmdPara = new SqlParameter[]{new SqlParameter("@UserName", UserName)}; string spname = "spGetUserBySql";try{DataSet ds = SqlHelper.ExecuteDataset(connectionString, CommandType.StoredProcedure, spname, cmdPara);if (ds.Tables.Count > 0){DataTable dt = ds.Tables[0];foreach (DataRow row in dt.Rows){User user = new User();user.UserId = (int)row["UserID"];user.UserNum = (int)row["UserNum"];user.UserName = (string)row["UserName"];user.UserPassword = (string)row["UserPassword"];user.UserPower = (string)row["UserPower"];user.UserSex = (string)row["UserSex"];user.UserAge = (int)row["UserAge"];user.UserIDCardNum = (string)row["UserIDCardNum"];user.UserPhone = (string)row["UserPhone"];user.UserEmail = (string)row["UserEmail"];user.UserPhoto = (string)row["UserPhoto"];user.UserAddress = (string)row["UserAddress"];if (DBNull.Value == row["Remarks"]) //兼容oracle,sqlserver,mysql数据库对null和''(空)的不同处理的解决方法 {user.Remarks = "无";}else{user.Remarks = (string)row["Remarks"];}list.Add(user);}}} catch (SqlException ex){foreach (SqlError sqlError in ex.Errors){Console.WriteLine(sqlError.Message);}}return list;}
返回 DataSet列表
百度云盘完整案例源码:
链接:https://pan.baidu.com/s/1-PiXiSrNwy5b8c08q7B9Rw
提取码:bt2z
转载于:https://www.cnblogs.com/fzqm-lwz/p/10046653.html
.net MVC(存储过程+SQLHelper)相关推荐
- 关于.net mvc用sqlhelper实现用户登录操作executereader函数的使用报错
通过控制器获取html中post获取到了username和password字段数据后通过三层结构传递给dll函数从而实现登录操作 dll中代码如下: public UserList Login(Use ...
- 数据库相关(JDBC,存储过程,以及大文本数据处理,mvc设计模式)
目录 1.jdbc总结(模板.八股文): 2.CallableStatement:调用 存储过程.存储函数 3.1JDBC调用存储过程的步骤: 3.2调存储函数: 3.处理CLOB/BLOB类型 4. ...
- mvc调用mysql存储过程_mysql – 存储过程不在MVC5中返回值
我正在使用db方法在MVC5中使用Entity Framework.我使用Mysql作为数据库.我创建了一个过程,当Mysql中的Call Procedure它符合我的期望时.但是当我在MVC中使用过 ...
- mvc调用mysql存储过程_使用.NET MVC +EF调用oracle的存储过程
题记: 需求如题,在网上搜索了一下,没有特别贴合我需求的资料,只好自己摸索,东拼西凑了解了一点东西慢慢尝试做了出来. 难点:.NET是微软产品,主要支持Sql Server数据库,对于Oracle的数 ...
- .NET MVC+ EF+调用存储过程 多表联查以及VIEW列表显示
直接上干活,至于网上的一大堆处理方式不予评论,做好自己的就是最好的,供大家不走弯路 1.view页面 <link href="~/Content/bootstrap.css" ...
- mysql mvc javascript_MVC中用Jquery、JS和Ajax 实现分页 存储过程是用mysql写的。
首先创建控制器,添加两个试图,一个Index 一个List 这里我用的是mysql Index.cshtml 代码 : @{ Layout = null; } Index @Styles.Rend ...
- MVC中用Jquery、JS和Ajax 实现分页 存储过程是用mysql写的。
首先创建控制器,添加两个试图,一个Index 一个List 这里我用的是mysql Index.cshtml 代码 : @{ Layout = null; } <!DOCTYPE html& ...
- 搭建.NET CORE MVC + EF CORE 的Demo
一.建库建表 USE [Test_Demo] GO /****** Object: Table [dbo].[SY_S_DEPARTMENT] Script Date: 2022/3/21 8:41: ...
- 一步一步写自己的SqlHelper类库
前言: 一开始不懂SqlHelper是什么,以为是新东西.第一遍大量的查资料,在csdn上找到很多人写好的SqlHelper类,发现每个人写的很像,但又都不一样,找了一个能用的上的,敲了一遍别人的代码 ...
最新文章
- java object monitor_Java-线程状态、ObjectMonitor
- Linux/Centos7系统管理之进程与计划任务管理
- 26.智能指针和动态内存
- python中unique函数_正在计算unique()的返回值
- ExtJS4为form表单必填项添加红色*标识
- 【双100%提交】剑指 Offer 09. 用两个栈实现队列
- 投资,个人未来的生存之道(任何个人必知)
- OpenCV:OpenCV目标检测Boost方法单独训练
- 感知算法论文(八):Generalized Intersection over Union:A Metric and A Loss for Bounding Box Regression(2019)
- 从人工智能到云,英特尔开源技术推动软件栈创新
- pandas dataframe绘制并保存图像
- 用户使用报告_【市场】最新手机用户使用报告 8+256GB成首选 小屏党哭了
- Mininet的内部实现原理简介
- matlab定义域为全体实数画图,MATLAB数学手册教程_第7章_绘图与图形处理
- 010指北方位惯导系统的力学编排之平台的指令角速度
- WinRAR 激活码(KEY)
- Centos7登陆颜色修改#PS1
- Invalid header signature; read 0x3C0A0D0A0DBFBBEF, expected 0xE11AB1A1E011CFD0
- Linux信号(signal)
- OpenCV—python OCR文本检测
热门文章
- delphi dbgrid 焦点 行号_安庆东进北扩发展超乎想象,谁会成为城市新格局里的人居焦点?...
- opencv对应python版本_【求问各位大佬python3.6怎么使用opencv,用哪个版本】python3 opencv...
- java mysql 文本导入数据语句_Java利用MYSQL LOAD DATA LOCAL INFILE实现大批量导入数据到MySQL...
- 创建python2与python3虚拟环境失败的原因
- 找出两列表共有的元素python,两个列表之间的公共元素未在Python中使用集
- 理清Python网络编程
- c++中用于字符输入的函数
- 判断两个对象是否相等java_判断两个对象的内容是否相等
- python实现一种检测postgresql数据库是否已经连接且为主节点的办法
- 统计“3_人民日报语料”文本中的字符数和词数,把文件分别保存为 ansi, UTF8,UTF16,unicode 格式