一.创建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. atitit.提升2--3倍开发效率--cbb体系的建设..

    atitit.提升开发效率--cbb体系的建设.. #--提升倍数,大概2--3倍.. #---cbb的内容 知识的,expt的,经验的技术的部件的问题库的角度.. #---cbb的层次,tech l ...

  2. paip.提升用户体验--radio图片选择器 easyui 实现..

    #paip.提升用户体验--radio图片选择器 easyui 实现.. =================================== ##原因... ------------------- ...

  3. How Tomcat works — 七、tomcat发布webapp

    目录 什么叫发布 webapp发布方式 reload 总结 什么叫发布 发布就是让tomcat知道我们的程序在哪里,并根据我们的配置创建Context,进行初始化.启动,如下: 程序所在的位置 创建C ...

  4. Inno setup 安装*.inf文件_示例

    nno setup 调用*.Inf文件的条目区段名称_示例 首先自己编写一个INF文件来供 Inno setup 进行测试: ;复制以下代码到记事本然后另存为123.inf .然后把123.inf文件 ...

  5. android recycleview 中禁止多点触发

    int currentapiVersion = android.os.Build.VERSION.SDK_INT; if (currentapiVersion >= android.os.Bui ...

  6. Java和.net常用开发框架组合

    Java: SSH和SSM 1.SSH是Spring(控制)+Struts(展现)+Hibernate(ORM)的缩写:此组合更严谨,适合企业级行业开发等等.2.SSM是Spring(控制)+Spri ...

  7. iOS10 相机相册等权限的使用、检测并引导用户开启权限

    <!-- 相册 --> <key>NSPhotoLibraryUsageDescription</key> <string>App需要您的同意,才能访问 ...

  8. JavaScript中的CSS属性对照表

    盒子标签和属性对照 CSS语法(不区分大小写) JavaScript语法(区分大小写) border border border-bottom borderBottom border-bottom-c ...

  9. gridlaylout 简单布局

    package com.example.gridlayout; import android.app.Activity; import android.os.Bundle; import androi ...

  10. 分布式的任务分发框架-Gearman

    官方文档:http://gearman.org/getting-started/ 安装方法和示例都有,可以详细看一下. Gearman是一个分发任务的程序框架,可以用在各种场合,与Hadoop相比,G ...