将参数传递给SPROC,返回位置特定数据?

时间:2017-11-20 16:58:45

标签: c# sql variables stored-procedures parameters

我有一个使用静态变量(@Location)创建的存储过程。 我试图创建一个C#应用程序,将LocationID参数传递给存储过程。参数需要传递TWICE(Location1和Location2)。到目前为止,我所拥有的是以下代码,我不知道如何循环它,或者它是否正确写入?

using (Conn)
  {
    SqlCommand cmd = new SqlCommand("[dbo].[sp_EXAMPLESPROC]",Conn);
    cmd.CommandType = CommandType.StoredProcedure;
    SqlParameter LocationParam = cmd.Parameters.AddWithValu("@LocationID", "1");
    LocationParam.SqlDbType = SqlDbType.Structured;

2 个答案:

答案 0 :(得分:0)

LocationID1LocationID2参数添加到存储过程然后 喜欢这个

 cmd.Parameters.Add(@LocationID1", SqlDbType.VarChar).Value = "1";
 cmd.Parameters.Add(@LocationID2", SqlDbType.VarChar).Value = "2";

这应该有效

答案 1 :(得分:0)

假设您将代码放入名为StoreLocation()的方法中。你需要一个参数`locationId'(它真的像你一样的字符串吗?)就像这样:

private void StoreLocation(string locationId)
{
    using (Conn)
    {
        SqlCommand cmd = new SqlCommand("[dbo].[sp_EXAMPLESPROC]",Conn);
        cmd.CommandType = CommandType.StoredProcedure;
        SqlParameter LocationParam = cmd.Parameters.AddWithValue("@LocationID", locationId);
        LocationParam.SqlDbType = SqlDbType.Structured;
        cmd.ExecuteNonQuery(); // Or however your sproc works.
    }
}

然后你只需要调用它两次或使用循环或任何你想要的东西:

private void SomeCallerMethod()
{
    // Whatever other code you have.

    StoreLocation("1");
    StoreLocation("2");

    // More other code.
}