Один пример, показывающий обновление SQL, но принципы те же
Для начала ваш источник соединения OleDb должен указывать путь, где находятся данные, а не просто относительный путь. \, Который не всегда может быть хорошим выбором. Затем все ваши запросы на вставку, обновление, удаление выполняются из этой папки, поэтому вам не нужно явно указывать все пути. Просто имя таблицы.
OleDbConnection oConn = new OleDbConnection(
"Provider=VFPOLEDB.1;SourceType=DBF;Data Source=C:\\rmwin\\;");
Теперь ваша команда. Чтобы добавить, обновить и удалить, вы можете сделать с помощью довольно распространенных SQL-операторов. Однако не объединяйте значения, которые вы пытаетесь вставить или обновить, что подвергает вас воздействию SQL-инъекции. Вместо этого OleDb использует "?" символ в качестве заполнителя для параметра, добавляемого в команду, и все "?" необходимо добавить параметры в том же порядке.
Итак, чтобы получить выбор, начните с того, что у вас есть
System.Data.OleDb.OleDbCommand oCmd = oConn.CreateCommand();
oCmd.CommandText = "select * from PosLink";
для вставки, создайте команду, определите все поля, которые вы пытаетесь вставить ... очевидно, не знаете содержимого вашей таблицы
oCmd.CommandText =
@"insert into PosLink
( TryColumn1,
TryColumn2,
TryColumn3 )
values
( ?,
?,
? ) ";
Теперь добавьте параметры, которые поступают откуда угодно, с вашего экрана / источника
oCmd.Parameters.AddWithValue( "parmTryColumn1", yourCSharpClassOrPropertyStringField );
oCmd.Parameters.AddWithValue( "parmTryColumn2", DateTime.Now );
oCmd.Parameters.AddWithValue( "parmTryColumn3", 12345 );
Обратите внимание, что для именования параметров у меня есть префикс "parm" только для того, чтобы узнать его параметр, а не фактический столбец вставки. Они должны быть в том же порядке, что и вставка.
Затем вы можете выполнить его ... Так как это INSERT, ничего не возвращается, поэтому считается незапрошенным, но вернет счетчик количества затронутых записей ... будет ожидать 1, если все в порядке, 0 или отрицательный, если отказ для чего-либо еще.
var recordCountInserted = oCmd.ExecuteNonQuery();
Надеюсь, это поможет вам начать работу и продолжить свой путь.
Что касается добавления пустого поля, для этого потребуется скрипт. В VFP вы бы сделали что-то вроде
use SomeTable
append blank
Итак, создайте строку для этих команд (НЕ ВСЕ КОМАНДЫ поддерживаются в VfpOleDb, но наиболее распространенные, которые вы ожидаете, данные, дата, строка, общие функции работают)
oCmd.CommandText =
@"execScript('use SomeTable
append blank
use' )";
oCmd.ExecuteNonQuery();
Да, вы можете делать код VFP следующим образом, но не все разрешено
Множество других ссылок из моей истории публикации для VFP, OleDb, параметризованных запросов и т. Д. В этом сообществе также есть и другие сильные разработчики VFP.