2014-11-11 2 views
2

Мой код, показанный ниже, создается как встроенный оператор SQL. Как этот код может быть записан как хранимая процедура?Как преобразовать Inline SQL в хранимую процедуру в SQL Server

Код:

public Stream SelectEmployeeImageByID(int theID) 
{ 
     SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString()); 
     string sql = "SELECT Image FROM Employees WHERE EmployeeId = @EmployeeId"; 
     SqlCommand cmd = new SqlCommand(sql, connection); 
     cmd.CommandType = CommandType.Text; 
     cmd.Parameters.AddWithValue("@EmployeeId", theID); 

     connection.Open(); 
     object theImg = cmd.ExecuteScalar(); 

     try 
     { 
      return new MemoryStream((byte[])theImg); 
     } 
     catch 
     { 
      return null; 
     } 
     finally 
     { 
      connection.Close(); 
     } 
    } 
+1

домашняя работа?????? –

+0

http://stackoverflow.com/questions/1260952/how-to-execute-a-stored-procedure-within-c-sharp-program –

+1

Проведите некоторое исследование. Проверьте этот URL-адрес: http://stackoverflow.com/questions/1260952/how-to-execute-a-stored-procedure-within-c-sharp-program. Кроме того, есть много примеров, используйте google. –

ответ

1

вы можете сделать это

create procedure SelectEmployeeImage(@employee int) 
as 
begin 
    SELECT Image FROM Employees WHERE EmployeeId = @EmployeeId 
end 

, то ваш код будет эта форма

public Stream SelectEmployeeImageByID(int theID) 
    { 
     SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString()); 
     string sql = "SelectEmployeeImage"; 
     SqlCommand cmd = new SqlCommand(sql, connection); 
     cmd.CommandType = CommandType.StoredProcedure; 
     cmd.Parameters.AddWithValue("@EmployeeId", theID); 
     connection.Open(); 
     object theImg = cmd.ExecuteScalar(); 
     try 
     { 
      return new MemoryStream((byte[])theImg); 
     } 
     catch 
     { 
      return null; 
     } 
     finally 
     { 
      connection.Close(); 
     } 
    } 

надеюсь, что это поможет вам

0

Создание хранимой процедуры

Create procedure SP_InsertEmployee 
as 
@EmployeeId int 
BEGIN 

SELECT Image FROM Employees WHERE [email protected] 

END 

Вы должны установить CommandType=StoredProcedure и Остальной будет же

cmd.CommandType = CommandType.StoredProcedure; 

Рекомендации

Всегда используйте using, который автоматически распоряжается соединения

using (SqlConnection con = new SqlConnection()) 
{ 
con.open(); 
using (SqlCommand cmd = new SqlCommand(sql, connection)) 
{ 

//object theImg = cmd.ExecuteScalar(); 

} 

con.Dispose(); 
} 
Смежные вопросы