Я пытаюсь выполнить хранимую процедуру в своей базе данных Sql Server из проекта MVC Asp.Net. Я установил его таким образом, чтобы использовать его для тестирования, поэтому переменная «procedureTest» является постоянным значением (я знаю, что «2044» - это существующая запись в моей базе данных). Я изменю это, как только добьюсь успеха. Кроме того, я знаю, что моя хранимая процедура работает, потому что я успешно ее выполнил в Sql Server Management Studio. Процедура имеет задачу добавления идентификатора из одной таблицы в другую, но я еще не видел, чтобы она отображалась в этой таблице. Я не получаю ошибку в моем блоке catch, поэтому в настоящий момент я теряюсь. Я определенно мог бы воспользоваться вашей помощью.Sql Server Хранимая процедура не выполняется из MVC
try
{
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
int procedureTest = 2044;
var command = new SqlCommand("SELECT ID FROM Images WHERE ID = @id", connection);
var paramDate = new SqlParameter("@id", procedureTest);
command.Parameters.Add(paramDate);
var reader = command.ExecuteReader();
while (reader.Read())
{
var storedProcCommand = new SqlCommand("EXEC addToNotificationTable @ID", connection);
var paramId = new SqlParameter("@ID", reader.GetInt32(0));
storedProcCommand.Parameters.Add(paramId);
command.ExecuteNonQuery();
}
}
}
catch (Exception e)
{
string exceptionCause = String.Format("An error occurred: '{0}'", e);
System.IO.File.WriteAllText(@"C:\Users\Nathan\Documents\Visual Studio 2013\Projects\MVCImageUpload\uploads\exception.txt", exceptionCause);
}
хранимых процедур:
CREATE PROCEDURE addToNotificationTable @ID int
AS
Insert NotificationTable (ID)
SELECT ID
FROM Images
Where ID = @ID
Вы не имеете '' 'в конце вашей команды' SELECT' ... – Ben
1. Отправьте хранимую процедуру. 2. Если вы нажмете F12 и перейдите на вкладку сети, вы видите ожидаемые данные, которые будут переданы в ваш контроллер, как ожидалось? Как вы это называете? 3. Используйте SQL Profiler для мониторинга базы данных и обеспечения вызывания хранимой процедуры. Существует много уровней проблем, которые могут возникнуть в этом коде, прежде чем он даже попадет в базу данных. –
@ Nick.McDermaid, только что добавил процедуру. Первоначально я использовал его в таймере, который был инициализирован в Global.asax.cs, но не был уверен, что это был таймер или этот код, который заставлял его не работать, поэтому я решил назвать его результатом действия, которое получает данные из другое приложение, а затем добавляет данные в мою базу данных. Я просто добавил его в конец моего действия, потому что я знаю, что actionresult работает отлично. Это была быстрая попытка только увидеть, смогу ли я заставить ее работать, а затем оттуда. Я попробую № 2 и № 3, которые вы указали. – Vigs