一.创建MySql存储过程

1,

CREATE PROCEDURE `InsertAlarmInfo`(in businessindex int, in providerindex int, in alarmtype int,
in alarmlevel int,in detecttime DateTime, in alarmdescription varchar(50), in alarmphenomenon int, in subBusinessType int,
in businessEntityIndex varchar(50), in taskIndex varchar(50), in eventIndex varchar(50))
BEGIN
declare entityIndex varchar(50);
if detecttime is null then set detecttime=now(); END IF;
INSERT INTO M_ALARM (BUSINESSINDEX, PROVIDERINDEX, ALARMTYPE, ALARMLEVEL, DETECTTIME, ALARMDESCRIPTION, HANDLESTATUS, ALARMPHENOMENON, ENTITYTYPE)
VALUES (businessindex,providerindex, alarmtype, alarmlevel, detecttime, alarmdescription, 3, alarmphenomenon, subBusinessType);
set entityIndex =concat('A_CN',right(concat('00000000',CURRVAL('ENTITY_SEQ')),8));
SET SQL_SAFE_UPDATES = 0;
if businessEntityIndex is not null then
INSERT INTO M_CONFIGITEMRELATION (SOURCEINDEX, TARGETINDEX, RELATIONTYPE, GROUPTYPE)
VALUES (entityIndex,businessEntityIndex, 3, 1); END IF;
if taskIndex is not null then
INSERT INTO M_CONFIGITEMRELATION (SOURCEINDEX, TARGETINDEX, RELATIONTYPE, GROUPTYPE)
VALUES (entityIndex, taskIndex, 3, 5);
END IF;
if eventIndex is not null then
INSERT INTO M_CONFIGITEMRELATION (SOURCEINDEX, TARGETINDEX, RELATIONTYPE, GROUPTYPE)
VALUES (entityIndex,eventIndex, 3, 14);
UPDATE M_EVENT SET DEALTYPE = 1 WHERE EVENTINDEX = eventIndex ; END IF;
UPDATE M_BUSINESSENTITYEXTEND SET CURRENTSTATUS = 2 WHERE ENTITYINDEX = businessEntityIndex and ENTITYTYPE = subBusinessType;
SET SQL_SAFE_UPDATES = 1;
select entityIndex;//这里用于返回EF获取的数据
END

2,1(这个存储过程调用函数)

CREATE  PROCEDURE `InsertWorkOrderInfo`(in personindex INTEGER,  in businessindex INTEGER,in  systemstatus INTEGER,in  providerindex INTEGER,
in alarmindex VARCHAR(100),in orderlevel INTEGER, in exceptfixtime INTEGER,in fixperson INTEGER, in currentstatus INTEGER,
in orderhandle VARCHAR(100),in handletype INTEGER)
BEGIN
select InsertWorkOrderInfo(personindex,businessindex,systemstatus,
providerindex,alarmindex,orderlevel,exceptfixtime,fixperson,currentstatus,orderhandle,handletype); END

2,2(定义函数)

CREATE  FUNCTION `InsertWorkOrderInfo`(personindex INTEGER,  businessindex INTEGER,  systemstatus INTEGER,  providerindex INTEGER,
alarmindex VARCHAR(100), orderlevel INTEGER, exceptfixtime INTEGER, fixperson INTEGER, currentstatus INTEGER,
orderhandle VARCHAR(100), handletype INTEGER) RETURNS varchar(100) CHARSET utf8
BEGIN
declare issmsnotify INTEGER;
declare isweixinnotify INTEGER;
declare createTime DATETIME;
declare cTime DATETIME;
set issmsnotify=0;
set isweixinnotify=0;
set cTime=now();
set createTime=now();
INSERT INTO M_WORKORDER (BUSINESSINDEX, SYSTEMSTATUS, PROVIDERINDEX, ALARMINDEX, ORDERLEVEL, EXCEPTFIXTIME, FIXPERSON, CURRENTSTATUS, ISSMSNOTIFY, ISWEIXINNOTIFY, CREATETIME, ORDERHANDLE, HANDLETYPE)
VALUES (businessindex, systemstatus, providerindex, alarmindex, orderlevel, exceptfixtime, fixperson,currentstatus, issmsnotify,isweixinnotify, cTime, orderhandle, handletype); INSERT INTO M_ORDERHANDLE (ORDERINDEX, HANDLESTATUS, HANDLETIME, HANDLEPERSON, HANDLEDESCRIPTION, HANDLETYPE)
VALUES (concat('S_CN',right(concat('00000000',CURRVAL('ENTITY_SEQ')),8)), currentstatus, cTime,personindex, orderhandle, handletype); RETURN concat('S_CN',right(concat('00000000',CURRVAL('ENTITY_SEQ')),8));
END

二 EF调用

 public ActionResult EditWorkOrder(FormCollection collection)
{
AppLog.Info("EditWorkOrder");
try
{
string openID = Session["OpenID"].ToString();
AppLog.Info("添加派工单时的openid:" + openID );
int personindex =DBAccess.Bussiness.GetStaffIndex(openID);
int businessindex =Convert.ToInt32(Session["PROVIDERINDEX_BUSINESSINDEX"].ToString().Split('/')[1]);//道路...index
int systemstatus = 0;
int providerindex = Convert.ToInt32(collection["ProviderList"]);//维护单位
string alarmindex = Session["Alarmindex"].ToString();//报警编号有上文提供
int orderlevel = Convert.ToInt32(collection["WorkOrderLevel"]);//优先级别
int fixperson = Convert.ToInt32(collection["RepairUserList"]);//维修人员
string currentstatus = Convert.ToString(collection["WorkOrderStatusList"]);//新增
string orderhandle =string.Empty;
if(collection["OrderHandle"]!=null)
{
orderhandle = collection["OrderHandle"];//故障分类处理描述
}
string handletype = Convert.ToString(collection["AlarmHandleTypeList"]);//故障处理分类
AppLog.Info("派工单参数信息:" + "--personindex:"+personindex+ "--businessindex:"+businessindex+ "--providerindex:"+providerindex+ "--alarmindex:"+alarmindex+ "--orderlevel:"+orderlevel+ "--fixperson:"+fixperson+ "--currentstatus:"+currentstatus+"--orderhandle:"+orderhandle+"--handletype:"+handletype);
MySqlParameter[] prams = new MySqlParameter[11];
prams[0] = new MySqlParameter("@personindex", personindex);
prams[1] = new MySqlParameter("@businessindex", businessindex);
prams[2] = new MySqlParameter("@systemstatus", systemstatus);
prams[3] = new MySqlParameter("@providerindex", providerindex);
prams[4] = new MySqlParameter("@alarmindex", alarmindex);
prams[5] = new MySqlParameter("@orderlevel", orderlevel);
prams[6] = new MySqlParameter("@exceptfixtime", 24);
prams[7] = new MySqlParameter("@fixperson", fixperson);
prams[8] = new MySqlParameter("@currentstatus", currentstatus);
prams[9] = new MySqlParameter("@orderhandle", orderhandle);
prams[10] = new MySqlParameter("@handletype", handletype);
using (cnpsim_dbEntities dbManager = new cnpsim_dbEntities())
{
var index = dbManager.Database.SqlQuery<string>("call InsertWorkOrderInfo(@personindex,@businessindex,@systemstatus,@providerindex ,@alarmindex, @orderlevel,@exceptfixtime, @fixperson,@currentstatus ,@orderhandle,@handletype)", prams);
string ss=index.FirstOrDefault().ToString();
string s = ss; return RedirectToAction("SuccessInfo", "BackInfo", new { str1 = "成功添加派工单", str2 = "", url = "http://wx115.cnpsim.com/Business/index" }); }
}
catch(Exception ex)
{
return null;
}
}

Entity Framework访问MySQL数据库的存储过程并获取返回值的更多相关文章

  1. Entity Framework连接Mysql数据库并生成Model和DAL层

    Entity Framework (EF,ADO.NET Entity Framework)是微软官方提供的.NET平台的ORM框架.相比于LINQ TO SQL,EF框架具有很明显的优势: EF框架 ...

  2. Yii2.0调用sql server存储过程并获取返回值

    1.首先展示创建sql server存储过程的语句,创建一个简单的存储过程,测试用. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE P ...

  3. 让Entity Framework支持MySql数据库(转载)

    转载地址:http://www.cnblogs.com/wintersun/archive/2010/12/12/1903861.html Entity Framework 4.0 也可以支持大名鼎鼎 ...

  4. C#访问MySQL数据库(winform+EF)

    原文:C#访问MySQL数据库(winform+EF) 以前都是C#连接SQLServer,现在MySQL也比较火了,而且是开源跨平台的,这里连接使用一下,主要是体会一下整个流程,这里使用的是winf ...

  5. C#连接、访问MySQL数据库

    一.准备工具 visual stuido(本示例使用visual studio 2010) MySql.Data.dll mysql_installer_community_V5.6.21.1_set ...

  6. Spring Boot入门(六):使用MyBatis访问MySql数据库(注解方式)

    本系列博客记录自己学习Spring Boot的历程,如帮助到你,不胜荣幸,如有错误,欢迎指正! 本篇博客我们讲解下在Spring Boot中使用MyBatis访问MySql数据库的简单用法. 1.前期 ...

  7. 让ADO.NET Entity Framework支持Oracle数据库

    Oracle最近发布了 Oracle Data Access Component(ODAC)11. 2 Rel 4,其中增加了对 Entity Framework 4.1 和4.2的支持.这让 .NE ...

  8. MySQL数据库之存储过程与存储函数

    1 引言 存储过程和存储函数类似于面向对象程序设计语言中的方法,可以简化代码,提高代码的重用性.本文主要介绍如何创建存储过程和存储函数,以及存储过程与函数的使用.修改.删除等操作. 2 存储过程与存储 ...

  9. android开发 如何通过web服务器访问MYSQL数据库并且使其数据同步到android SQLite数据库?

    通过web服务器访问MYSQL数据库有以下几个过程: 1.在MySql下创建自己的数据库和自己的表单 2.连接数据库. 3.访问数据库 1.创建web工程 (服务器端) 在Myeclipse下新建一个 ...

随机推荐

  1. ffmpeg mp3 to m3u8

    ffmpeg -i Sunshine.mp3 -c:a libmp3lame -b:a 128k -map 0:0 -f segment -segment_time 10 -segment_list ...

  2. 【OpenWRT】 Chaos Calmer 15.05 编译

    进入正题,编译环境准备完毕后,下载源码 git clone git://git.coding.net/leop/openwrt.git 复制代码 复制dl包(可以加快初次编译速度,但非必须)链接:pa ...

  3. WPF与winform与silverlight的区别

    收到了一封学生的邮件: =========================== 金老师您好: 最近在学C#.NET,基本语法学习的差不多了,接下来准备学习图形界面设计部分.但是我目前对于.NET的Wi ...

  4. SQL 游标使用实例

    IF EXISTS(SELECT *FROM sysobjects WHERE name='sp_ContestSubmit') DROP PROC sp_ContestSubmit GO -- == ...

  5. Codeforces Round #381 (Div. 1) A. Alyona and mex 构造

    A. Alyona and mex 题目连接: http://codeforces.com/contest/739/problem/A Description Alyona's mother want ...

  6. 当创业遇上O2O,新一批死亡名单,看完震惊了!

    当创业遇上O2O,故事就开始了,总投入1.6亿.半年开7家便利店.会员猛增至10万……2015半年过去后,很多故事在后面变成了一场创业“事故”,是模式错误还是烧钱过度?这些项目的失败能给国内创业者带来 ...

  7. [LeetCode] Serialize and Deserialize Binary Tree

    Serialize and Deserialize Binary Tree Serialization is the process of converting a data structure or ...

  8. 进入做Mvc项目的时候 返现某个文件夹下面css js png等静态文件都访问不了

    原来是我在该文件夹下面添加了一个web.config 里面 静止了所有的文件 直接访问 <system.web>    <httpHandlers>      <add ...

  9. 常用的sql脚本 游标遍历操作

    Declare @id int DECLARE cursor_data CURSOR FOR --这里是取得数据源 OPEN cursor_data FETCH FROM cursor_data IN ...

  10. C#==>匿名方法 【转】

    http://blog.csdn.net/gishero/article/details/5161826 1,匿名方法 C#为委托提供一种机制,可以为委托定义匿名方法,匿名方法没有名称,编译器会定指定 ...