2012-05-22 1 views
0

Как вставить данные в базу данных формата .dbf с использованием SQL в Visual C#?Как вставить данные в базу данных формата dbf с использованием sql в Visual C# 2008?

Это то же самое, что и при использовании MS Access?

OleDbConnection dbConn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\wz\Desktop\UBS\onetimecapture\onetimecapture\onetimecapture\bin\Debug\;Extended Properties=dBase IV;"); 

try 
{ 
    // Open connection. 
    dbConn.Open(); 
    //string queryCutting = "INSERT INTO cuttingstatus.dbf ([Status]) VALUES(adddate)"; 
    string queryCutting = "INSERT INTO cuttingstatus.dbf VALUES(adddate)"; 
    OleDbCommand command_cutting = new OleDbCommand(queryCutting, dbConn); 

    command_cutting.Parameters.AddWithValue("adddate", "123"); 
    command_cutting.ExecuteNonQuery(); 
    dbConn.Close(); 
} 
catch 
{ 
    MessageBox.Show("Error", "SCADA system", MessageBoxButtons.OK); 
} 

но возвращает ошибку сказать, что

Ядро базы данных Microsoft Jet не может найти объект 'черенки'.
Убедитесь, что объект существует, и вы правильно назовете его имя и имя пути.

База данных называется cuttingstatus.dbf, и она состоит только из одной колонки Status.

Спасибо за помощь =)

ответ

0

Что такое имя таблицы в cuttingstatus.dbf?

Заявление должно быть что-то вроде:

INSERT INTO TABLE_NAME 
VALUES(adddate) 

в качестве значения переменной queryCutting.

+0

Да, спасибо. я просто вычислил ват - это имя таблицы – Ran

0

При создании OleDbConnection для использования файлов базы данных вы хотите, чтобы ваш источник подключения указывал на логическую PATH, где таблица ... не фактическая таблица.

Connection dbConn = new OleDbConnection(@"Data ource=C:\SomePath\WhereAreAllTables;Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=dBase IV;"); 

Тогда ваш запрос на вставку не ссылается на расширение .dbf ... это подразумевается соединением. Кроме того, даже если это может быть один столбец, было бы лучше, чтобы явно показать столбец и значения, такие как:

string queryCutting = "INSERT INTO cuttingstatus (YourColumnName) VALUES (@adddate)"; 

Далее ... Является ли это действительно система DBase IV? Стол FoxPro? Клипер? Я бы обеспечил надлежащего поставщика. Если данные на самом деле происходят из Foxpro, я бы пошел в Microsoft и загрузил поставщика Visual Foxpro OleDb.

Последняя мысль ... заключается в том, что ошибка связана с усеченным именем таблицы длиной до 8 символов «черенки», что подразумевает старые назначения имен файлов DOS 8.3. Не знаю, к чему вы также столкнулись в своей проблеме.

+0

является оригинальным от foxpro. – Ran

+0

"OleDbConnection dbConn = new OleDbConnection (" Provider = vfpoledb; Источник данных = C: \\ Пользователи \\ wz \\ Рабочий стол \\ UBS \\ onetimecapture \\ onetimecapture \\ onetimecapture \\ bin \\ Debug \\ cuttingstatus.dbf ; Mode = ReadWrite | Share Deny None, Collating Sequence = MACHINE; Password = '' ");" Могу я знать, что это значит? this, Collating Sequence = MACHINE – Ran

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