Похоже, в вашем AddWithValue вам нужно получить доступ к свойству Text Labels вместо того, чтобы передавать объект Label в proc, и все будет в порядке.
Итак:
MyCommand.Parameters.AddWithValue("@DialID", sDialID.Text)
MyCommand.Parameters.AddWithValue("@CallbackID", sCallbackID.Text)
Если бы вы не получали элементы управления, это вызвало бы исключение NullReferenceException.
EDIT:
Что касается SP, вам необходимо определить, где возникает проблема. Попробуйте запустить SProc из SQL Management Studio, указав параметры, которые должен передать .NET, и убедитесь, что процесс запущен. Если это работает, я бы отладил ваш код, чтобы убедиться, что значения попадают в параметры. Тип Integer не должен иметь значения, потому что .NET ищет тип позже. Если вы хотите быть в безопасности, вы можете разобрать их в целые числа, прежде чем отправлять их в Proc.
EDIT2:
Вы можете попробовать использовать скрытые поля следующим образом:
(где-то в вашем подробном обзоре)
<asp:HiddenField ID="_CtlDialIDHidden" runat="server" Value='<%#Eval("DialID")%>' />
<asp:HiddenField ID="_CtlCallbackIDHidden" runat="server" Value='<%#Eval("CallbackID")%>' />
А в вашем клике событие
If Request.Form.AllKeys.Contains("_CtlDialIDHidden") Then
MyCommand.Parameters.AddWithValue("@DialID", Request.Form.Item(Request.Form.AllKeys.FirstOrDefault(Function(x As String) x.Contains("_CtlDialIDHidden"))))
End If
If Request.Form.AllKeys.Contains("_CtlCallbackIDHidden") Then
MyCommand.Parameters.AddWithValue("@CallbackID", Request.Form.Item(Request.Form.AllKeys.FirstOrDefault(Function(x As String) x.Contains("_CtlCallbackIDHidden"))))
End If
Возможно, вам придется просмотреть исходный код, чтобы точно узнать, какое имя передается назад, вместо использования лямбда-выражений.