第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在實(shí)體框架中使用表值和標(biāo)量參數(shù)調(diào)用存儲過程

如何在實(shí)體框架中使用表值和標(biāo)量參數(shù)調(diào)用存儲過程

C#
倚天杖 2023-09-24 16:20:58
我正在嘗試調(diào)用具有兩個參數(shù)的存儲過程:ID :int數(shù)據(jù) :table user defined type我想使用實(shí)體框架調(diào)用這個存儲過程。請幫我。
查看完整描述

1 回答

?
蝴蝶刀刀

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個贊

請檢查以下代碼:


public DataTable CallStoredProcedure(System.String procedureName, Dictionary<string, object> parameters)

        {

            var cmd = CreateStoredProcCallCommand(procedureName, true);

            for (int i = 0; i < parameters.Count; i++)

            {

                var param = parameters.ElementAt(i);

                if (param.Value.GetType() == typeof(DataTable))

                    AddTableValuedParameter(cmd, "@" + param.Key, 0, ParameterDirection.Input, param.Value);

                else

                    AddParameter(cmd, "@" + param.Key, 2147483647, ParameterDirection.Input, param.Value);

            }


            var toReturn = new DataTable();

            CreateAndSetupAdapter(cmd).Fill(toReturn);

            return toReturn;

        }

private DbCommand CreateStoredProcCallCommand(string storedProcedureToCall, bool openConnection)

        {

            var cmd = _factoryToUse.CreateCommand();

            cmd.CommandType = CommandType.StoredProcedure;

            cmd.CommandText = storedProcedureToCall;

            return SetupCommand(cmd, openConnection);

        }

private DbDataAdapter CreateAndSetupAdapter(DbCommand selectCommand)

{

    var adapter = _factoryToUse.CreateDataAdapter();

    adapter.SelectCommand = selectCommand;

    return adapter;

}


 private static void AddTableValuedParameter(DbCommand cmd, string parameterName, int length, ParameterDirection direction, object value)

        {

            SqlParameter param = new SqlParameter();

            param.ParameterName = parameterName;

            param.SqlDbType = SqlDbType.Structured;

            param.Size = length;

            param.Value = value;

            param.Direction = direction;

            cmd.Parameters.Add(param);

        }

private static void AddParameter(DbCommand cmd, string parameterName, int length, ParameterDirection direction, object value)

        {

            var dummyParam = new EntityParameter() { Value = value };

            var parameter = cmd.CreateParameter();

            parameter.ParameterName = parameterName;

            parameter.Direction = direction;

            parameter.Size = length;

            parameter.Value = value;

            parameter.DbType = dummyParam.DbType;

            cmd.Parameters.Add(parameter);

        }


查看完整回答
反對 回復(fù) 2023-09-24
  • 1 回答
  • 0 關(guān)注
  • 169 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號