2010-08-30 3 views
0

Сценарий Стол с одним из столбцов varchar (20). Столбец в основном содержит целочисленные значения, но мы не ограничивали пользователя. 90% пользователей входят в 50, но есть 5% пользователей, которые вводят 50 единиц. определен в коде запросе следующим образомсвободно типизированный набор данных, предполагающий типы данных

qry = select coalesc(CONVERT(Varchar(20),column1),'') from table1 

Попал C# код для заполнения набора данных следующим образом

DataSet ds = loader.LoadDataSet(qry); 

Теперь то, что происходит в том, что среда .NET получает первую строку и потому, что это целое число (в большинстве случаев), он присваивает столбцу тип данных int и в сценариях, таких как «50 единиц», он возвращает пустое значение, так как column1 является int (представление времени выполнения in.net) и не работает в CONVERT (varchar (20), column1) и возвращает пустой столбец ('').

Один из вариантов заключается в том, чтобы пользователь сильно набирал набор данных и делал это, но я хотел бы узнать о любой другой альтернативе, чтобы сделать это, прежде чем идти по этому пути.

ответ

0

Мой плохой. На самом деле, это был запрос sql, который терпел неудачу в .net-коде. Когда столбец является varchar, выполнение чего-то вроде COALESC(CONVERT(VARCHAR(20),column1),0) терпит неудачу. Это должно быть COALESC(CONVERT(VARCHAR(20),column1),'0')

Смежные вопросы