Как заставить SqlDataSource использовать параметры varchar? - PullRequest
0 голосов
/ 19 ноября 2008

Я использую SqlDataSource для заполнения моего GridView, потому что эти два, похоже, так тесно связаны друг с другом. Поскольку эта сетка показывает результаты поиска, у меня в коде написана динамическая строка sql, которая ссылается на параметры, которые я передаю, например, ниже:

sdsResults.SelectParameters.Add("CodeID", TypeCode.String, strCodeID)

Моя проблема в том, что поле CodeID является полем varchar. Как вы, возможно, уже заметили, передача в поле nvarchar, которое будет оцениваться по отношению к полю varchar, может очень сильно повлиять на производительность sql. Однако SelectParameters.Add принимает только типы TypeCode, что, по-видимому, дает мне только Unicode TypeCode.String в качестве моей жизнеспособной опции.

Как заставить мой SqlDataSource использовать varchars? Я не могу изменить тип данных на данный момент - это главный ключ большого 10-летнего приложения, и, честно говоря, varchar подходит именно для этого приложения.

Ответы [ 3 ]

1 голос
/ 19 ноября 2008

Кстати, мой обходной путь сейчас позволяет SqlDataSource передавать в параметре как nvarchar. Затем моя первая строка в SQL преобразует этот параметр nvarchar явно в переменную varchar и вместо этого использует эту новую переменную varchar через мой скрипт.

Но это кажется глупым.

0 голосов
/ 05 января 2009

Нет, к сожалению, требуется передать параметр System.TypeCode. Использование SqlDbType приводит к ошибке компиляции.

0 голосов
/ 02 января 2009

Может быть, это будет работать:

using System.Data;

sdsResults.SelectParameters.Add("CodeID", SqlDbType.VarChar, strCodeID);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...