1. 程式人生 > >資料讀取器具有多個欄位。多個欄位對於儲存過程中的EDM原語或列舉型別無效

資料讀取器具有多個欄位。多個欄位對於儲存過程中的EDM原語或列舉型別無效

報錯程式碼:

SqlParameter voteFrom = new SqlParameter("@voteFrom", workFlow.VoteFrom);
SqlParameter voteTo = new SqlParameter("@voteTo", workFlow.VoteTo);
SqlParameter result = new SqlParameter("@result", SqlDbType.NVarChar,50);
result.Direction = ParameterDirection.Output;

context.Database.SqlQuery<string>("exec [workflow_CheckAccount] @voteFrom,@voteTo,@result out"
, voteFrom, voteTo,result).FirstOrDefault();//報錯行。 checkResult =(string)result.Value;

換成下面方法通過:

List<SqlParameter> paramArray = new List<SqlParameter>();
paramArray.Add(new SqlParameter("@voteFrom", workFlow.VoteFrom));
paramArray.Add(new SqlParameter("@voteTo", workFlow.VoteTo));

SqlParameter param = new SqlParameter("@result"
, SqlDbType.NVarChar, 50); param.Direction = ParameterDirection.Output; paramArray.Add(param); try { context.Database.ExecuteSqlCommand("EXEC [workflow_CheckAccount] @voteFrom,@voteTo,@result out", paramArray.ToArray()); } catch (Exception ex) { throw; } checkResult = (string)paramArray[2].Value
;

相關推薦

資料讀取器具對於儲存過程EDM列舉型別無效

報錯程式碼: SqlParameter voteFrom = new SqlParameter("@voteFrom", workFlow.VoteFrom); SqlParameter voteTo = new SqlParameter("@voteTo",

計算機數值型資料二進位制形式儲存過程碼,反碼與補碼

在計算機系統中,數值一律用補碼來表示和儲存。原因在於,使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。此外,補碼與原碼相互轉換,其運算過程是相同的,不需要額外的硬體電路。

spring 整合mybatis——資料來源切換(附帶定時器的配置,儲存過程連線,資料多於50條,分批進行操作)

新建com.millery.utils包在其下新建DataSourceContextHolder類 package com.millery.utils; public class DataSourceContextHolder { private

SQL Server 儲存過程處理查詢條件的幾種常見寫法分析,我們該用那種寫法

最近發現還有不少做開發的小夥伴,在寫儲存過程的時候,在參考已有的不同的寫法時,往往很迷茫, 不知道各種寫法孰優孰劣,該選用那種寫法,以及各種寫法優缺點,本文以一個簡單的查詢儲存過程為例,簡單說一下各種寫法的區別,以及該用那種寫法 專業DBA以及熟悉資料庫的同學請無視。

專案問題-------傳入儲存過程的引數的長度一定要和資料庫表的長度保持一直

傳入儲存過程中的引數的長度一定要和資料庫表的欄位長度保持一直今天新建了一個使用者,密碼在資料庫表User中的欄位長度是varchar(50)密碼打算儲存是用MD5 做32位加密 所以 50 足夠了但是我在儲存過程中卻傳入的長度是 @password Varchar(20) 資

mysql在儲存過程從結果集給引數賦值的辦法

DECLARE var1 DATETIME; DECLARE var2 DATETIME; SELECT    t.f1, t.f2  into var1,var2 FROM    tableName t ; SELECT     class_id1,     atten

儲存過程操作ORACLE CLOB

下面的 儲存過程演示了大資料不能一次插入資料庫的分批插入法,用到了ORACLE CLOB欄位 CREATE OR REPLACE PROCEDURE INSERT_RES_PEOPLE_ADD( r_people_cname          varchar2, r_peo

儲存過程一維陣列接受按分割符拆分的資料

declare -- Local variables here i integer; Lar_Input t_Arr.Arrname; --一維陣列接收 按分隔符拆分 begin -- Test statements here Pkg_n_Cst_String.Pr

Oracle PLSQLl的執行緒程式設計架構 儲存過程使用執行緒 定時任務 作業排程計劃 JOB SCHEDULE

  基於Oracle plsql的多執行緒程式設計架構 (附儲存過程) 1年前 1413 作者介紹 馮守東,北京科訊華通科技發展有限公司高階專案經理。超12年Oracle開發及管理經驗,多年運營商和政府企業級系統運維經驗,曾獲得東軟最佳設計方案獎。熟悉Weblogic、TU

oracle 在儲存過程寫兩遊標巢狀迴圈

CREATE OR REPLACE PROCEDURE "PROC_CHZBANKMOTNREC" AS vid NUMBER(19);--id vzdrpriaccount VARCHAR2(1

SQL Server資料庫的儲存過程定義的臨時表,真的必要顯式刪除(drop table #tableName)嗎?

問題背景 在寫SQL Server儲存過程中,如果儲存過程中定義了臨時表,有些人習慣在儲存過程結束的時候一個一個顯式地刪除過程中定義的臨時表(drop table #tName),有些人又沒有這個習慣,對於不明真相的群眾或者喜歡思考的人會問,儲存過程中定義的臨時表,最後要不要主動刪除,為什麼

C#呼叫SQL儲存過程output引數

           string strsql = string.Format("Sp_AutoTenderTrialAll");            SqlParameter[] sqlParam = new SqlParameter[]{             new SqlParameter("@

[面試]:能簡單介紹下您現在所做專案和過程的技術難點遇到瓶頸嗎?

思路轉載自Hollis的知識星球,有興趣的可以搜一下,很不錯。這種問題直接回答高併發分散式場景的資料一致性問題。(參考:連結:[高階]關於分散式一致性的探究)然後面試官問:如何解決的呢。答:在併發方面考慮了樂觀鎖和分散式鎖。在一致性方面不同場景使用了不同策略。問:介紹下樂觀鎖

關於sql server 在儲存過程建立臨時表,並往臨時表插入資料時出現亂碼的問題

  此前在客戶一個繁體系統的sql  server中執行儲存過程的時候出現亂碼,經查發現建立臨時表後,往臨時表中插入資料時得到的資料是亂碼的,所以檢視建立表的sql指令碼,經查需要將變數型別設定為  

SqlDataAdapter.Fill()時超時的一個另類的原因:你的儲存過程超長的註釋嗎?

最近在研究網站中,使用SqlDataAdapter進行Fill時總超時的問題,使用查詢分析器執行,結果秒出,使用Sql Server Profiler跟蹤後,得到指令扔到查詢分析器裡,結果還是秒出,但是在頁面執行,就永遠是超時,相當納悶啊 於是把Sql Server Pro

mysql 儲存過程使用遊標

mysql的儲存過程可以很方便使用遊標來實現一些功能,儲存過程的寫法大致如下: 先建立一張表,插入一些測試資料: DROP TABLE IF EXISTS netingcn_proc_test; CREATE TABLE `netingcn_proc_test`

[PL/SQL] 請教大家一個問題,儲存過程需要幾commit?

如果中間有語句發生錯誤就不一樣了,寫了一個測試的例子,看看對你有幫助沒有 drop table aatest; create table aatest (nid number,nname varchar2(16)) insert into aatest(nid,nname)values(1,'00

Oracle儲存過程層巢狀遊標的用法

Oracle sql指令碼程式碼   CREATE OR REPLACE   PROCEDURE P_DELETE_QK (pId in NUMBER, deep in NUMBER) AS   -- pId = 分類ID  deep = 深度,層級   on

Sql Server2008如何在儲存過程實現根據判斷插入更新資料

儲存過程的功能非常強大,在某種程度上甚至可以替代業務邏輯層,接下來就一個小例子來說明,用儲存過程插入或更新語句。 1、資料庫表結構 所用資料庫為Sql Server2008。 2、建立儲存過程 (1)實現功能:         有相同的資料,直接返回(返回值:0);    

MySQL儲存過程,定義變數兩種方式

MySQL儲存過程中,定義變數有兩種方式: 1.使用set或select直接賦值,變數名以 @ 開頭. 例如:set @var=1; 可以在一個會話的任何地方宣告,作用域是整個會話,稱為會話變數。