Я работаю над приложением ASP.NET, которое использует VB. Я использую SQLReader / SQLCommand / SQLConnection в файле VB, чтобы попытаться получить значения данных.
Я был озадачен, обнаружив, что причина, по которой запрос не возвращал никаких значений, и кто-то здесь показал мне, как устранить неполадки в запросе, чтобы убедиться, что вещи возвращаются, чего не было.
Я разговаривал с коллегой, и он спросил, будет ли он совпадать, потому что я передаю строку, а текстовое поле для базы данных - это nvarchar. Как я могу объявить переменную в VB, чтобы при вводе в качестве параметра для запроса она могла совпадать?
Типы данных, которым они соответствуют, это просто базовые вещи, такие как "2", "2a", "1a" и т. Д.
Если нет способа просто объявить nvarchar, есть ли у кого-нибудь предложение о том, как мне это обойти?
Спасибо большое.
Примечание: Это своего рода продолжение этого вопроса: Читатель SQL говорит, что значений не существует, запрос выглядит нормально
Редактировать: Спасибо за помощь. Я настроил все так, как вы, ребята, сказали, но теперь я получаю сообщение об ошибке: «Не существует сопоставления между типом объекта System.Data.SqlClient.SqlParameter и собственным типом известного управляемого поставщика».
У меня есть параметр как переменная всей формы:
Private travelParameter As New SqlParameter("@trip", SqlDbType.NVarChar)
А потом внутри основной формы,
travelQuery.CommandText = "SELECT [StartLoc], [EndLoc],[TravelTime], [AvgSpeed], [Distance] FROM [TravelTimes] WHERE [TripNum] = @trip"
travelQuery.Parameters.AddWithValue("@trip", travelParameter)
Позже будет вызываться такая функция.
FillWithTime("2", travelReader, time, newCell)
Определяется как:
Private Sub FillWithTime(ByVal TripNum As Char, ByRef travelReader As SqlDataReader, ByRef TimeData() As Object, ByRef Cell As System.Web.UI.WebControls.TableCell)
travelParameter.Value = TripNum
travelReader = travelQuery.ExecuteReader()
If (travelReader.Read()) Then
travelReader.GetValues(TimeData)
'stuff
End If
End Sub
Еще раз спасибо.
P.S. - Адам и Серебус, я бы принял оба ответа, если бы мог. Они оба действительно собрали эту идею для меня, большое спасибо.