Подскажите плиз, каким образом я могу заполнить System.Data.DataSet данными из какого-либо DBF файла???
Пробовал OleDbConnection — не получилось. Я взял прописал в ConnectionString DSN этого DBF файла. Выскочил exception — пишет типа не дружу c ODBC. Есть способ как подконнектиться к DBF (неважно через ODBC или нет) юзая OleDbConnection ??? Если нет, то скажите пожалуйста как можно. Руки кривые — ничего не выходит %)).
У тебя наверное framework 1.0 стоит. У меня тоже были подобные проблемы, только я к MySql подключался. Всё решается установкой framework 1.1 (и студии Everett). Туда. кроме всего прочего добавлены классы ODBC* , которые нормально работают с ODBC
Одинаковые ошибки не обязательно делать каждый раз, достаточно сделать одну, а затем обращаться к ней по мере необходимости из любого места программы.
Здравствуйте, OLEG OVS, Вы писали:
OO>Подскажите плиз, каким образом я могу заполнить System.Data.DataSet данными из какого-либо DBF файла??? OO>Пробовал OleDbConnection — не получилось. Я взял прописал в ConnectionString DSN этого DBF файла. Выскочил exception — пишет типа не дружу c ODBC. Есть способ как подконнектиться к DBF (неважно через ODBC или нет) юзая OleDbConnection ??? Если нет, то скажите пожалуйста как можно. Руки кривые — ничего не выходит %)).
А OledbConnection принципиален? Чем не подошел OdbcConnection?
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте, OLEG OVS, Вы писали:
OO>Подскажите плиз, каким образом я могу заполнить System.Data.DataSet данными из какого-либо DBF файла??? OO>Пробовал OleDbConnection — не получилось. Я взял прописал в ConnectionString DSN этого DBF файла. Выскочил exception — пишет типа не дружу c ODBC. Есть способ как подконнектиться к DBF (неважно через ODBC или нет) юзая OleDbConnection ??? Если нет, то скажите пожалуйста как можно. Руки кривые — ничего не выходит %)).
>Здравствуйте, OLEG OVS, Вы писали:
OO>>Подскажите плиз, каким образом я могу заполнить System.Data.DataSet данными из какого-либо DBF файла??? OO>>Пробовал OleDbConnection — не получилось. Я взял прописал в ConnectionString DSN этого DBF файла. Выскочил exception — пишет типа не дружу c ODBC. Есть способ как подконнектиться к DBF (неважно через ODBC или нет) юзая OleDbConnection ??? Если нет, то скажите пожалуйста как можно. Руки кривые — ничего не выходит %)).
Я тоже столкнулся с такой же проблемой, но я продвинулся немного дальше:
я могу заполнить DataSet, отобразил данные в гриде, но проблема в том, что если изменить в ячейке значение, а потом на кнопке проапдейтить
OdbcDataAdapter1.Update(DataSet1, "Table name")
то выскакивает Exeption [Microsoft][ODBC Visual Fox Pro Driver] Command is missing required clause.
А> OdbcDataAdapter1.Update(DataSet1, "Table name")
А>то выскакивает Exeption [Microsoft][ODBC Visual Fox Pro Driver] Command is missing required clause.
А>Помогите, что нужно сделать?
Здравствуйте, <Аноним>, Вы писали:
А>Здравствуйте, Gollum, Вы писали:
G>>А что в коммандах Update и Insert?
А>Команды UpdateCommand и InsertCommand в OdbcDataAdapterе я не настраивал. А>Я настроил только SelectCommand
А>Петя
Здравствуйте, <Аноним>, Вы писали:
А>Спасибо, настрою. А>Но при работе с SQLConnection в такой же ситуации я не настраивал ничего, кроме SelectCommand и всё работало.
Этого не может быть, иначе бы адаптер не знал, каким образом инсертить и апдейтить.
Может, оно незаметно настроило их в VS
Здравствуйте, OLEG OVS, Вы писали:
OO>Подскажите плиз, каким образом я могу заполнить System.Data.DataSet данными из какого-либо DBF файла??? OO>Пробовал OleDbConnection — не получилось. Я взял прописал в ConnectionString DSN этого DBF файла. Выскочил exception — пишет типа не дружу c ODBC. Есть способ как подконнектиться к DBF (неважно через ODBC или нет) юзая OleDbConnection ??? Если нет, то скажите пожалуйста как можно. Руки кривые — ничего не выходит %)).
Попробуй так:
OleDbConnection cn = null;
try
{
cn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=d:\new_stat\kod_form;Extended Properties=dBase IV");
DataSet a010DS = new DataSet();
OleDbDataAdapter a010Adapter = new OleDbDataAdapter(@"SELECT A010, TXT FROM [KOD_A010]", cn);
a010Adapter.Fill(a010DS, "A010");
a010DG.DataSource = a010DS;
}
catch (OleDbException oledbex)
{
MessageBox.Show(oledbex.Message);
}
... << RSDN@Home 1.0 beta 4 >>
Re[2]: Из *.DBF в DataSet???
От:
Аноним
Дата:
27.06.03 17:53
Оценка:
Здравствуйте, slv, Вы писали:
slv>Попробуй так: slv>
slv>OleDbConnection cn = null;
slv>try
slv>{
slv> cn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;
slv> Data Source=d:\new_stat\kod_form;Extended Properties=dBase IV");
slv> DataSet a010DS = new DataSet();
slv> OleDbDataAdapter a010Adapter = new OleDbDataAdapter(@"SELECT A010, TXT FROM [KOD_A010]", cn);
slv> a010Adapter.Fill(a010DS, "A010");
slv> a010DG.DataSource = a010DS;
slv>}
slv>catch (OleDbException oledbex)
slv>{
slv> MessageBox.Show(oledbex.Message);
slv>}
slv>
спасибо за способ конекта через OleDb, но а как же быть с апдейтом, если в гриде чтото вручную изменили.
Для Gollum
Извини, не заметил что пользовался SqlCommandBuilder'ом.
Петя
Re[3]: Из *.DBF в DataSet???
От:
Аноним
Дата:
02.07.03 15:26
Оценка:
Здравствуйте,
Работая с MS SQL я использовал типизированный DataSet и у меня автоматически сгенерировались экземпляры класса Command, но Adapter я не настроил на UpdateCommand, InsertCommand и DeleteCommand, а использовал CommandBuilder.При этом всё апдейтится.
Тоже проделываю с OdbcCommandBuilder при конекте через ODBC
Dim Builder As OdbcCommandBuilder = New OdbcCommandBuilder(OdbcDataAdapter)
OdbcDataAdapter.Update(DataSet, "myTable")
на что получаю "Dynamic SQL generation for the UpdateCommand is not supported against a SelectCommand that does not return any key column information"
Здравствуйте, <Аноним>, Вы писали:
А>на что получаю "Dynamic SQL generation for the UpdateCommand is not supported against a SelectCommand that does not return any key column information"
Ну написали же: "Динамическое создание SQL-команды Update невозможно, так как в Select нет ни одного ключа."
Вывод — нужно создать ключевую колонку в таблице. Обычно это ID, int с автоинкрементом, нужно назначить этой колонке primary key.
А вообще, лучше почитать немного про SQL, ADO.Net и такие вопросы перестанут возникать. Ну и learn English, конечно.