Я делаю сайт, который, когда я нажимаю на определенную кнопку, будет показывать данные или статус. Но когда я нажимаю на нее, появляется Ошибка преобразования типа данных varchar в числовой.Ошибка преобразования типа данных varchar в числовой. Для отображения данных
Вот мой код
Dim ds As New DataSet
Try
ds = GetDataSet2("dateadd(mm, datediff(mm, 0, last_check), 0) as DateMonthly, SUM((convert(decimal(5,2), left(duration, 3))))/count(*) as AverageMonthly", "tblServices_Status AS TSES, tblWeb_Apps as TWA", "TSES.web_apps_id = TWA.web_apps_id AND TWA.web_apps_id = '" & appid & "' AND MONTH(last_check) = MONTH(dateadd(dd, -1, GetDate())) AND YEAR(last_check) = YEAR(dateadd(dd, -1, GetDate()))", "dateadd(mm, datediff(mm, 0, last_check), 0)", "dateadd(mm, datediff(mm, 0, last_check), 0)")
For Each dr As DataRow In ds.Tables(0).Rows
lblAppAveMonthly.Text = Format(Val(dr("AverageMonthly")), "0.00") + "s"
Next
Catch ex As Exception
Throw ex
Finally
ds.Dispose()
End Try
Большое спасибо
Вот код для моего GetDataSet2
Public Shared Function GetDataSet2(ByVal columnname As String, ByVal databasename As String, ByVal condition As String, ByVal columngroup As String, ByVal columnorder As String) As DataSet
Dim conn As New SqlConnection()
conn = getConn()
Dim ds As New DataSet
Dim query As String
Try
If condition = "" Then
condition = "1 = 1"
End If
query = "SELECT " & columnname & " FROM " & databasename & " WHERE " & condition & " GROUP BY " & columngroup & " ORDER BY " & columnorder &""
Dim sda As New SqlDataAdapter(query, conn)
sda.Fill(ds)
sda.Dispose()
Catch oError As Exception
Throw oError
Finally
If conn.State Then conn.Close()
conn.Dispose()
End Try
Return ds
End Function
Здравствуйте, @arkeysi, можете ли вы показать свою функцию GetDataSet2 на вопросе о задании вопроса? –
Мы не знаем, что происходит в GetDataSet2 (как уже указывал @willie). Эта конкретная ошибка исходит из вашей базы данных, сообщающей вам, что вы пытаетесь использовать буквенно-цифровое (varchar/string) значение, в котором НЕОБХОДИМЫЙ число. Я собираюсь рискнуть и сказать, что проблема заключается в этом коде: 'SUM ((конвертировать (десятичный (5,2), левый (продолжительность, 3))))/count (*) как AverageMonthly', но это довольно сложно решить, не зная, a) что делает эта функция GetDateSet2 действительно, и б) структура ваших таблиц и данных внутри них. – Jeroen
[Изменить] ваше сообщение, чтобы добавить дополнительные данные кода. Код не форматируется в комментариях – Plutonix