Рейтинг:
1
OriginalGriff
Просто: посмотрите на сообщение об ошибке:
Input array is longer than the number of columns in this table.
Это довольно ясно.
Вы пытаетесь добавить два столбца данных в таблицу, которая имеет не более одного столбца. Поскольку система не знает, что делать с остальным, она выбрасывает его.
Используйте отладчик: поставьте точку останова на линию
dr.ItemArray = new object[] { 0, "--Select--" };
И посмотрите на
dt
внимательно. Сколько в нем колонок? Что это такое? Что в них содержится?
Возможно, вы звоните не тому SP, или он не возвращает то, что вы думаете, но я подозреваю, что "получить все номера счетов" вернет один столбец данных, сам.
Agarwal1984
Я называю правильный SP.
Только одна колонка в моем ДТ.
Только Orderid.
когда я не использую этот код:-
Строкаданных др;
др = ДТ.Невров();
д-р.ItemArray = new object[] { 0, " --Select--"}; / / ошибка в этой строке.
ДТ.Строк.InsertAt(dr, 0);
Итак, значение отображается в моем combobox, но я хочу, чтобы начальное значение находилось в позиции 0, например "--Select--"
DataTable возвращается в одном столбце:-
выберите код заказа из заказов (этот запрос написан на СП).
OriginalGriff
Один столбец = = одни данные. Вы пытаетесь добавить два элемента: ноль и строку. Правильно, система жалуется.
Вместо того чтобы создавать массив с двумя элементами, удалите ноль из массива и оставьте код InsertAt прежним.
Agarwal1984
Теперь он получает ошибку:-
Входная строка была не в правильном формате.Не удалось сохранить < -- Select-->В столбце OrderID. Ожидаемый тип-Int32.
Я изменил свой код:-
public DataTable GetAllBillNo()
{
DataTable dt = новый DataTable();
Команда sqlcommand cmd и = новая команда sqlcommand("spGetAllBillNo", метод getconnection());
УМК.CommandType = CommandType.Хранимая процедура;
SqlDataAdapter sda = новый SqlDataAdapter(cmd);
ПДД.Заполнить(ДТ);
Строкаданных др;
др = ДТ.Невров();
д-р.ItemArray = новый объект [] {"--Select--"};
ДТ.Строк.InsertAt(dr, 0);
возврат dt;
}
если я convert.int Итак, затем появляется еще одна ошибка: - входная строка была не в правильном формате.
OriginalGriff
Итак...у вас есть столбец, содержащий числа, и вы хотите поместить в него строку?
И эти сообщения об ошибках не те, которые вы ожидали?
Я не пытаюсь быть неловким здесь, но помните, что я понятия не имею, что такое ваши данные - я получаю только то, что вы печатаете для работы.
Если вы хотите смешивать типы, вам придется изменить то, что вы делаете: вы не можете "автоматизировать" процесс создания таблицы таким образом, потому что если вы предоставляете целые числа, он создает целочисленный столбец. Вместо этого преобразуйте ваши значения из SQL из целого числа в строку и добавьте "select" вверху. Затем создайте из него свою таблицу данных. Или создайте класс, который содержит целое число и переопределяет ToString для его отображения - и реализация ToString возвращает "Select" для отрицательного числа. Таким образом, ваши элементы могут оставаться в числовом порядке без необходимости в ведущих нулях.
Чем позже,тем лучше.
Agarwal1984
мое требование таково:-
--Выбирать--
1
2
3
4
я хочу заполнить combobox с помощью --Select-- но мои данные успешно заполнены без select.
OriginalGriff
Прочтите, что я сказал.