代码之家  ›  专栏  ›  技术社区  ›  Karl

控制SQL存储过程C中的多个输出#

  •  1
  • Karl  · 技术社区  · 16 年前

    有人能告诉我如何控制来自返回多组输出的SQL存储过程的输出吗?

    我目前正在做以下工作:

            DataTable allData = new DataTable();
            SqlConnection connection = new SqlConnection(mySource);
    
            SqlCommand cmd = new SqlCommand(procedureName, connection);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(paramName, SqlDbType.Int);
            cmd.Parameters[paramName].Value = paramValue;
    
            connection.Open();
    
            SqlDataAdapter adapter = new SqlDataAdapter(cmd);
            adapter.Fill(allData);
    
            connection.Close();
    

    现在,如果该过程只有一个输出值,那么这就可以正常工作了,但是如何处理以下问题:

    我的存储过程大致执行以下操作:

    它调用许多其他存储过程以构造动态SQL查询(让我们调用这个@query),然后调用执行(@query),执行选择。

    使用上面的代码片段返回select查询的结果,这很好。但我也希望它能返回字符串@query。我可以将其指定为输出类型,并让SQL获取它,但如何从C_访问它?(实际上,更具体地说,当我这样做时,上面截图的代码只返回字符串@query,不再返回select的结果)

    谢谢

    卡尔

    2 回复  |  直到 14 年前
        1
  •  3
  •   Tim Cooper    14 年前

    您可以这样做:

     DataSet allData = new DataSet ();
     ...
     ...
     ...
      adapter.Fill(allData);
    

    然后选择的每个结果都在不同的数据表中

        2
  •  3
  •   Dewfy    16 年前

    使用sqldatareader.nextresult。 这一小部分改变了您使用sqldataadapter的方式,但是您仍然能够用datatable.load填充datatable。

    推荐文章