이 저장 프로 시저를 C # 프로그램에서 실행하고 싶습니다.
SqlServer 쿼리 창에 다음 저장 프로 시저를 작성하고 stored1으로 저장했습니다.
use master
go
create procedure dbo.test as
DECLARE @command as varchar(1000), @i int
SET @i = 0
WHILE @i < 5
BEGIN
Print 'I VALUE ' +CONVERT(varchar(20),@i)
EXEC(@command)
SET @i = @i + 1
END
편집 :
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace AutomationApp
{
class Program
{
public void RunStoredProc()
{
SqlConnection conn = null;
SqlDataReader rdr = null;
Console.WriteLine("\nTop 10 Most Expensive Products:\n");
try
{
conn = new SqlConnection("Server=(local);DataBase=master;Integrated Security=SSPI");
conn.Open();
SqlCommand cmd = new SqlCommand("dbo.test", conn);
cmd.CommandType = CommandType.StoredProcedure;
rdr = cmd.ExecuteReader();
/*while (rdr.Read())
{
Console.WriteLine(
"Product: {0,-25} Price: ${1,6:####.00}",
rdr["TenMostExpensiveProducts"],
rdr["UnitPrice"]);
}*/
}
finally
{
if (conn != null)
{
conn.Close();
}
if (rdr != null)
{
rdr.Close();
}
}
}
static void Main(string[] args)
{
Console.WriteLine("Hello World");
Program p= new Program();
p.RunStoredProc();
Console.Read();
}
}
}
예외가 표시됩니다 Cannot find the stored procedure dbo.test
. 경로를 제공해야합니까? 그렇다면 저장 프로 시저를 어느 위치에 저장해야합니까?
3
테스트에도 master 이외의 데이터베이스를 사용하는 것이 좋습니다. 이것은 시스템 데이터베이스이므로 결국 문제가 발생합니다. SQL 2012에서는 테이블을 만들 수 없습니다. 반대로 sproc을 만들 수 있습니다. : /
—
Joe Johnston
그럼에도 불구하고 답변 : 당신이 당신이 준 이름 (dbo.test)으로 sp가 실제로 생성되었는지 확인 했습니까? dbo가 아닌 사용자가 dbo.test를 만들려고하면 어떻게 될지 모르겠습니다 ... dbo.test가 아닌 것으로 생성됩니까?
—
DigCamara
@obayhan이 질문은 복제 가능성이 있다고 주장하는 질문 2 년 전에 요청되었습니다. 앞으로 가장 최근의 질문을 중복으로 표시하십시오.
—
RyanfaeScotland