Чтобы автоматизировать работу сотрудников, была поставлена задача автоматически интегрировать записи клиентов.В программе поддерживается клиентская база с базой данных foxpro (dbf).Я пытаюсь вручную сделать тестовую запись в базе данных, но при добавлении значений в одно из полей появляется ошибка:
System.Data.OleDb.OleDbException: "Function is not implemented."
Я создаю объект класса для работы с базой данных:
WDBF db = new WDBF();
db.CreateOleDbCommand("INSERT INTO CLNDATES (" +
"CLIENT_CODE, " +
"LAST_NAME, " +
"FIRST_NAME, " +
"FAMILY, " +
"HOME_PH_NUMBER," +
"OFFICE_PH_NUMBER ," +
"CARD_CODE, " +
"ADD_DATES ," +
"CONTRACT,"+
"CREDIT," +
"PROC_T," +
"PROC_O," +
"MAIL," +
"FILE_PHOTO, " +
"RISK," +
"WORKPLACE," +
"KDG," +
"NATIONALITY," +
"REGION," +
"ADDRESS," +
"MG," +
"INSURER_CODE," +
"BONUSTYPE," +
"DISCOUNTCARD," +
"BONUSCOMMENT," +
"DOCTOR," +
"POST," +
"POSTDATE," +
"VILLAGE," +
"DOGOVOR_FROM," +
"PASSPORT," +
"AGENT," +
"INVALID" +
"" +
"" +
") " +
"VALUES(" +
"?,?,?,?,?," +
"?,?,?,?,?," +
"?,?,?,?,?," +
"?,?,?,?,?," +
"?,?,?,?,?," +
"?,?,?,?,?," +
"?,?,?" +
")");
Далее я открываю соединение и пытаюсь выполнить команду INSERT.
using (StreamReader w = new StreamReader("conf.txt"))
conf = w.ReadLine();
_connection.ConnectionString = @"Provider=vfpoledb;" + conf + ";Collating Sequence=machine; Exclusive=No";
_connection.Open();
OleDbCommand command = new
OleDbCommand(queryString, _connection);
command.Parameters.Add("CLIENT_CODE", OleDbType.Char).Value= 85919607;
command.Parameters.Add("HOME_PH_NUMBER", OleDbType.Char).Value = 1111;
command.Parameters.Add("OFFICE_PH_NUMBER", OleDbType.Char).Value = 1111;
command.Parameters.Add("FIRST_NAME", OleDbType.Char).Value = "test";
command.Parameters.Add("FAMILY", OleDbType.Char).Value = "test";
command.Parameters.Add("LAST_NAME", OleDbType.Char).Value = "test";
command.Parameters.Add("CARD_CODE", OleDbType.Char).Value = "";
command.Parameters.Add("ADD_DATES", OleDbType.Char).Value = "";
command.Parameters.Add("CONTRACT", OleDbType.Char).Value = "";
command.Parameters.Add("CREDIT", OleDbType.Double).Value = 0;
command.Parameters.Add("PROC_T", OleDbType.Double).Value = 0;
command.Parameters.Add("PROC_O", OleDbType.Double).Value = 0;
command.Parameters.Add("MAIL", OleDbType.Char).Value = "";
command.Parameters.Add("FILE_PHOTO", OleDbType.Char).Value = "";
command.Parameters.Add("RISK", OleDbType.Char).Value = "";
command.Parameters.Add("WORKPLACE", OleDbType.Char).Value = "";
command.Parameters.Add("KDG", OleDbType.Char).Value = "";
command.Parameters.Add("NATIONALITY", OleDbType.Char).Value = "";
command.Parameters.Add("REGION", OleDbType.Char).Value = "";
command.Parameters.Add("ADDRESS", OleDbType.Char).Value = "";
command.Parameters.Add("MG", OleDbType.Char).Value = "";
command.Parameters.Add("INSURER_CODE", OleDbType.Char).Value = "";
command.Parameters.Add("BONUSTYPE", OleDbType.Char).Value = "";
command.Parameters.Add("DISCOUNTCARD", OleDbType.Char).Value = "";
command.Parameters.Add("BONUSCOMMENT", OleDbType.Char).Value = "";
command.Parameters.Add("DOCTOR", OleDbType.Char).Value = "";
command.Parameters.Add("POST", OleDbType.Char).Value = "";
command.Parameters.Add("POSTDATE", OleDbType.Date).Value =null;
command.Parameters.Add("VILLAGE", OleDbType.Date).Value = null;
command.Parameters.Add("DOGOVOR_FROM", OleDbType.Date).Value = null;
command.Parameters.Add("PASSPORT", OleDbType.Char).Value = null;
command.Parameters.Add("AGENT", OleDbType.Char).Value = null;
command.Parameters.Add("INVALID", OleDbType.Char).Value = null;
command.ExecuteNonQuery();
Ошибка появляется при добавлении
command.Parameters.Add("INVALID", OleDbType.Char).Value = null;
При добавлении пустой строки,ошибка остается:
command.Parameters.Add ("INVALID", OleDbType.Char) .Value = "";
Проходил через разные типы данных, но ошибка никуда не уходит.В чем может быть проблема?Извините, у меня плохой английский.
UPD1:
Я пытался добавить строки в другую таблицу из того же программного обеспечения.Вставлено без ошибок.Внесены изменения в код, чтобы не перечислять все столбцы, а заполнить только необходимые.
db.CreateOleDbCommand("INSERT INTO cln_actions (CLIENT_CODE) " + "VALUES(?)");
public void CreateOleDbCommand(string queryString)
{
if(_connection != null)
{
_connection.Open();
OleDbCommand command = new
OleDbCommand(queryString, _connection);
command.Parameters.Add("[CLIENT_CODE]", OleDbType.Char).Value = "test";
new OleDbCommand("set null off", _connection).ExecuteNonQuery();
int x = command.ExecuteNonQuery();
}}