首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >向exec过程添加新参数

向exec过程添加新参数
EN

Stack Overflow用户
提问于 2018-08-08 04:44:57
回答 1查看 65关注 0票数 1

我有一个自定义的SQL exec来执行存储过程,并在sql中发送DataTable和执行TableType,如下所示:

代码语言:javascript
运行
复制
 //Execute 
 db.ExeSQLParam("usp_TaskStatus_Time_Calculation_Final", parameters, "@GuidIdTableType");

ExeSQLParam方法:

代码语言:javascript
运行
复制
public bool ExeSQLParam(string SprocName, DataTable paramArray, string tableTypeName)
        {

            var testc = new SqlParameter();
            bool bFlag = false;
            SqlCommand cmd = new SqlCommand(SprocName, this.dbconn);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter(tableTypeName, SqlDbType.Structured));
            cmd.Parameters[tableTypeName].Value = paramArray;

            try
            {
                cmd.ExecuteNonQuery();
                bFlag = true;
            }
            catch (SqlException e)
            {
                this.HandleSQLError(e, SprocName, paramArray.ToString());
            }
            finally
            {
                cmd.Dispose();
            }
            return bFlag;
        }

我的问题是如何向此方法添加另一个常规参数,以便我可以执行如下代码:

代码语言:javascript
运行
复制
db.ExeSQLParam("usp_TaskStatus_Time_Calculation_Final", parameters, "@GuidIdTableType", 
@anoteherParameter = 'valueanotherparameter', @other = 'valueoter');

我怎样才能做到这一点呢?

我尝试将其更改为DataTable格式的接收输出数据,如下所示:

代码语言:javascript
运行
复制
 public DataTable ExeSQLParamAndType(string SprocName, DataTable paramArray, string tableTypeName)
        {

            SqlCommand cmd = new SqlCommand(SprocName, this.dbconn);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new SqlParameter(tableTypeName, SqlDbType.Structured));
            cmd.Parameters[tableTypeName].Value = paramArray;

            DataTable tbl = new DataTable("Table1")
            {
                Locale = System.Globalization.CultureInfo.InvariantCulture
            };
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            try
            {
                da.Fill(tbl);
            }
            catch (SqlException e)
            {
                this.HandleSQLError(e, "GetTableBySQL", SprocName);
            }
            finally
            {
                cmd.Dispose();
            }
            return tbl;
        }

但是我可以在哪里添加新参数呢?和另一个parameters.Add?我有点困惑

EN

Stack Overflow用户

发布于 2018-08-08 05:10:52

在C#中,您可以使用' params‘关键字提供可选参数,因此您只需重写方法并提供params参数即可。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51735146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档