我有一个使用静态变量(@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;
答案 0 :(得分:0)
将LocationID1
和LocationID2
参数添加到存储过程然后
喜欢这个
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.
}