Параметры для SqlCommand и SqlDataAtapter

Всегда работали с командами SQLDataAdapter и Fill для запросов на выборку данных, а также с запросами на выполнение для вставки, обновления, удаления.

У меня проблема и я не могу понять, что я делаю неправильно. У меня есть привязка DataTable к RadGrid. DataTable получает данные за один конкретный месяц поступления компании и генерирует дополнительный столбец с необходимой нам информацией.

Я получаю выбранный месяц из RadControl и отправляю данные после нажатия кнопки:

    Protected Sub RadButton1_Click(sender As Object, e As EventArgs) Handles RadButton1.Click
    Dim fecha As Date
    fecha = RadMonthYearPicker1.DbSelectedDate
    miDataTable = objOPRecibo.FacturasEspeciales(fecha.Month, fecha.Year)
    RadGrid1.Rebind()
End Sub

Это функция в вызываемом объекте:

    Public Function FacturasEspeciales(Mes As Integer, Anio As Integer) As DataTable
    Dim FEDataTable As New DataTable
    Using conection As New SqlConnection(constr)
        Using cmd As New SqlCommand(@"SELECT 
              SUM(Det_Recibo.dCantidad) Cantidad, 
              Producto.Nombre, 
              SUM(Det_Recibo.mTotal) Valor, 
              SUM((((Det_Recibo.mTotal*100)/95)*1.12)) ESPE 
              FROM Det_Recibo 
                   INNER JOIN Enc_Recibo 
                   ON Det_Recibo.idRecibo = Enc_Recibo.idRecibo 
                   INNER JOIN Producto 
                   ON Det_Recibo.idProducto = Producto.IdProducto 
              WHERE MONTH(Enc_Recibo.dFechaFact)=@Mes AND 
                    YEAR(Enc_Recibo.dFechaFact)=@Anio 
                    Producto.idGasto = 1 OR Producto.idGasto = 2 
                    GROUP BY Producto.Nombre")
            cmd.Parameters.AddWithValue("@Mes", Mes)
            cmd.Parameters.AddWithValue("@Anio", Anio)

            Dim sda As New SqlDataAdapter(cmd.CommandText, conection)
            sda.Fill(FEDataTable)

        End Using
    End Using
    'Return DataTable
    Return FEDataTable
End Function

Я получаю либо неопределенную скалярную ошибку для @Mes, либо вторую ошибку, не относящуюся к строке sda.Fill.

Я новичок, и после нескольких часов исследований я просто не могу понять, что я делаю не так.

Любая помощь будет оценена

1 ответ

Это, вероятно, из-за отсутствия соединения.Open()

Using conection As New SqlConnection(constr)
conection.open()
<REST OF YOUR CODE>
Другие вопросы по тегам