У меня есть программа, которая должна обновлять данные в dbf файле. но в нем сохраняется ошибка “несоответствие типа оператора/операнда”. вот пример кода:
Dim con As OleDbConnection = New OleDbConnection(«Provider=vfpoledb;Data Source=C:folderpaytran.dbf;Collating Sequence=machine;») Try Dim strSQL As String = «UPDATE paytran.dbf SET workhr = 20 WHERE empno = 102» Dim cmd As OleDbCommand = New OleDbCommand(strSQL, con) con.Open() Dim myDA As OleDbDataAdapter = New OleDbDataAdapter(cmd) Dim myDataSet As DataSet = New DataSet() ‘ Using DataAdapter object fill data from database into DataSet object myDA.Fill(myDataSet, «MyTable») ‘ Binding DataSet to DataGridView DGV.DataSource = myDataSet.Tables(«MyTable»).DefaultView con.Close() con = Nothing Catch ex As Exception MessageBox.Show(ex.Message, «Error Select Data») Finally If con IsNot Nothing Then con.Close() End If End Try
Лучший ответ:
Его строка подключения. Строка соединения должна указывать только на PATH, где находятся файлы данных, тогда все команды на основе SQL по умолчанию смогут видеть любые.DBF-таблицы в этом пути (или пересылать, если существуют подпуты).
Ошибка в направлении оператора присвоения
Data Source=C:folder
Data Source=C:folderpaytran.dbf
Итак, теперь, если у вас есть 30 таблиц в папке “C: ”, теперь вы можете запросить их из ВСЕХ из них по мере необходимости.
Вам нужно явно открыть и закрыть DBF. Пытаться:
Dim strSQL As String = «Use paytran in 0 shared;UPDATE paytran SET workhr = 20 WHERE empno = 102;use in select(‘paytran’)»
Источник: techarks.ru
Несоответствие типа оператора / операнда при обновлении файла dbf
У меня есть программа, которая должна обновлять данные в файле dbf. но продолжает появляться ошибка «Несоответствие типа оператора / операнда». вот пример кода:
Dim con As OleDbConnection = New OleDbConnection(«Provider=vfpoledb;Data Source=C:folderpaytran.dbf;Collating Sequence=machine;») Try Dim strSQL As String = «UPDATE paytran.dbf SET workhr = 20 WHERE empno = 102» Dim cmd As OleDbCommand = New OleDbCommand(strSQL, con) con.Open() Dim myDA As OleDbDataAdapter = New OleDbDataAdapter(cmd) Dim myDataSet As DataSet = New DataSet() ‘ Using DataAdapter object fill data from database into DataSet object myDA.Fill(myDataSet, «MyTable») ‘ Binding DataSet to DataGridView DGV.DataSource = myDataSet.Tables(«MyTable»).DefaultView con.Close() con = Nothing Catch ex As Exception MessageBox.Show(ex.Message, «Error Select Data») Finally If con IsNot Nothing Then con.Close() End If End Try
пожалуйста, помогите мне..
person xana schedule 25.03.2013 source источник
Файл dbf — это таблица в базе данных .. если dbc — это имя базы данных . прямо сейчас у меня нет базы данных (.dbc) .. только таблица (.dbf). — person xana nbsp schedule 25.03.2013
Перегрузка операторов пример. ООП. Перегрузка оператора присваивания. C++ Для начинающих. Урок#83
Еще пара вещей — я использовал OleDb с dBase (не Visual FoxPro, но они похожи) в прошлом. В строке подключения просто укажите путь к файлу DBF (т. Е. C:folder — опустите файл DBF), а в обновлении просто используйте имя файла без расширения (т. Е. paytran , а не paytran.dbf ). — person Tim nbsp schedule 25.03.2013
Для заполнения DataSet не будет возвращено никаких записей, так как это запрос UPDATE. Ваша таблица DataSet всегда будет пустой. Если вы хотите только выполнить команду UPDATE, тогда. cmd.ExecuteNonQuery() — это все, что вам нужно. После этого вы сможете выполнить SQL SELECT для заполнения элемента управления данными. — person DaveB Use paytran in 0 shared;UPDATE paytran SET workhr = 20 WHERE empno = 102;use in select(‘paytran’)»
Источник: questu.ru
Несоответствие типа оператора / операнда
Я использую поставщик OLE DB для Visual FoxPro для запроса VFP DB и получаю:
System.Data.OleDb.OleDbException ‘Несоответствие типа оператора / операнда`
Что я могу делать не так?
user185123 15 окт ’18 в 02:34 2018-10-15 02:34
2018-10-15 02:34
2 ответа
В моем случае, чтобы избежать подобных неудобств, я делаю следующее, надеюсь, это сработает для вас:
var_name = iif(vartype(var_name)==’N’,var_name,Val(var_name))
Таким образом, вы избегаете двух возможных ошибок: если оно приходит в символ со значением, я конвертирую его в число, а если оно приходит в символ без значения, оно становится равным 0.
SELECT * FROM [some-table] WHERE itemprop=»upvoteCount»>0
20 ноя ’18 в 13:39 2018-11-20 13:39
2018-11-20 13:39
В моем where пункт у меня был int с одной стороны и char(15) на другой стороне
id int
SELECT * FROM [some-table] WHERE
Источник: stackru.com