Форум: "Прочее";
Текущий архив: 2010.12.26;
Скачать: [xml.tar.bz2];
ВнизВопрос по C Sharp, если можно ) Найти похожие ветки
← →
Василий Жогарев © (2010-09-15 18:24) [0]Пытаюсь выполнить запрос SELECT с условием, к DBF- файлу...
Выдает ошибку:
System.Data.Odbc.OdbcException: ERROR [07002] [Microsoft][Драйвер ODBC dBase] Слишком мало параметров. Требуется 1.
Убираю условие, WHERE, все работает не пойму в чем собственно дело...
Вот часть кода:
public DataSet GetDataSetFromAdapter(DataSet dataSet, string connectionString, string queryString)
{
using (OdbcConnection connection = new OdbcConnection(connectionString))
{
OdbcDataAdapter adapter = new OdbcDataAdapter(queryString, connection);
connection.Open();
adapter.Fill(dataSet);
connection.Close();
}
return dataSet;
}
DataSet ds = new DataSet();
GetDataSetFromAdapter(ds, connectionString, @"SELECT name FROM structure WHERE parent = 0"); //Вот тут ошибка!...
MessageBox.Show(ds.Tables[0].Rows.Count.ToString());
Заранее спасибо, уважаемые.
← →
Плохиш © (2010-09-15 18:42) [1]Подозреваю, что вот это "@" надо убрать.
← →
Плохиш © (2010-09-15 18:43) [2]или всё-таки надо писать
ds = GetDataSetFromAdapter...
← →
Иксик © (2010-09-16 00:05) [3]@ правильно, а вот [2] скорее всего оно и есть :)
← →
Иксик © (2010-09-16 00:05) [4]@ правильно, а вот [2] скорее всего оно и есть :)
← →
Василий Жогарев © (2010-09-16 09:45) [5]Нашел ошибку, она состоит в следующем:
Когда заменяем Data type DBF- файла в поле parent с Integer на Numeric, все прекрасно работает, с чем это связано понять не могу....
Но при этом при всем возникает следующая ошибка при преобразовании типов, далее по коду программы:
DataSet ds = new DataSet();
ds = GetDataSetFromAdapter(connectionString, "SELECT * FROM structure WHERE (parent=0");
foreach(DataRow row in ds.Tables[0].Rows)
{
Item.Tag = (int)row["parent"];
}
Т.е. Numeric в int, это понятно, не совместимость типов. Но как тогда в программе и DBF- файле использовать одни и те же типы, если он не Хочет понимать тип Integer DBF- файла?
← →
Василий Жогарев © (2010-09-16 09:53) [6]Есть два типа файла DBF, это: Visual FoxPro и dBase III Plus я использую dBase III Plus
Может проблема в этом?
← →
Anatoly Podgoretsky © (2010-09-16 10:05) [7]> Василий Жогарев (16.09.2010 09:53:06) [6]
У dBase III нет типа Integer
← →
Василий Жогарев © (2010-09-16 10:42) [8]Вопрос снят, использую (double)row, работает. Вопросов больше не имею.
Спасибо всем.
Ветку я думаю можно оставить...
← →
М. Береговой (2010-09-16 20:51) [9]int.Parse(row["parent"].ToString())
Так должно всегда работать, только надо еще DBNull.Value проверять:
int.Parse(row["parent"]==DBNull.Value?"0":row["parent"].ToString())
или
double.Parse(row["parent"]==DBNull.Value?"0":row["parent"].ToString())
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2010.12.26;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c