2013-04-16 4 views
1

Как я могу выполнить хранимую процедуру на кнопке OnClick без параметров? У меня есть следующий код позади:Выполнение хранимой процедуры OnClick

Protected Sub btnExport_Click(sender As Object, e As System.EventArgs) Handles btnExport.Click 

     Dim exec As SqlCommand = New SqlCommand("up_ExportFile", conn) 
     exec.CommandType = CommandType.StoredProcedure 

End Sub 

ответ

2

Предположив вы уже открыли соединение просто добавьте ExecuteNonQuery метод

Protected Sub btnExport_Click(sender As Object, e As System.EventArgs) Handles btnExport.Click 

     Dim exec As SqlCommand = New SqlCommand("up_ExportFile", conn) 
     exec.CommandType = CommandType.StoredProcedure 
     exec.ExecuteNonQuery() 

End Sub 

Однако я предлагаю вам не держать глобальную переменную держит ваш SqlConnection открыл для жизни вашей заявки. Помните, что поставщик ADO.NET для SqlServer реализует connection pooling mechanism, и, таким образом, открытие соединения - это легкая процедура.
Так лучше подход

Using conn = new SqlConnection("your_connection_string_here") 
    conn.Open() 
    Dim exec As SqlCommand = New SqlCommand("up_ExportFile", conn) 
    exec.CommandType = CommandType.StoredProcedure 
    exec.ExecuteNonQuery() 
End Using 

Таким образом, создается объект соединения только при необходимости, а затем закрывают и утилизированы See Using Statememt

+0

Спасибо за совет. Недопустимый exec.ExecuteNonQuery() сделал трюк. Теперь он выполняется. Ответ принят. –

Смежные вопросы