Tag: dbase

获取OleDbCommandBuilder生成的SQL命令

我使用OleDbDataAdapter和OleDbCommandBuilder用数据库内容填充DataSet对象,然后根据我在DataSet中所做的更改来更新数据库。 问题是我得到了exception:“并发冲突:UpdateCommand影响了预期的1条记录中的0条”。 我找到了这个错误的解释: 因为记录在从SELECT语句返回后可能已被修改,但在发出UPDATE或DELETE语句之前,自动生成的UPDATE或DELETE语句包含WHERE子句,指定仅在包含所有原始行的情况下才更新行值并且尚未从数据源中删除。 如果自动生成的更新尝试更新已删除的行或不包含DataSet中找到的原始值,则该命令不会影响任何记录,并且会引发DBConcurrencyException。 这意味着自动生成的UPDATE命令会影响数据库中的0行。 我使用paradox(db-file)数据库,除了我之外没有人改变它。 我猜我的程序在某处改变了同一行两次。 我想通过手动执行所有生成的查询来调试我的程序,并找到哪一个不影响任何行(因为实际上我非常确定所有更改只进行一次而且bug在其他地方)))。 是否可以手动运行自动生成的命令? 我的代码太大而且很复杂,不能在这里发布,但通常它的工作方式是这样的(我做了一个工作项目并从那里开始) using System; using System.Data; using System.Windows.Forms; using System.Data.OleDb; namespace OleDBCommandBuilder { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string cs = @”Provider=Microsoft.Jet.OLEDB.4.0;”; cs += @”Data Source=C:\FOLDER\1\SPR_KMZ\;”; cs += @”Extended Properties=Paradox 5.x;”; OleDbConnection […]

如何在where和between子句中查询DBF(dbase)文件的日期类型字段

我有一个DBF文件,我正在尝试从c#代码中读取它。 我可以成功读取文件而不应用任何条件或应用varchar类型字段的条件。我的问题是我必须从Date字段中过滤记录(类型:日期)。 我试过以下方法, SELECT * FROM D:\DBFreader\file.dbf where [RDATE] between 2/16/2006 12:00:00 AM and 2/20/2006 12:00:00 AM 上面给出了语法错误:缺少运算符 SELECT * FROM D:\DBFreader\file.dbf where [RDATE] between ‘2/16/2006 12:00:00 AM’ and ‘2/20/2006 12:00:00 AM’ 上面给出了数据类型不匹配错误 SELECT * FROM D:\DBFreader\file.dbf where [RDATE] between 2/16/2006 and 2/20/2006 上面没有抛出任何exception,但是虽然有匹配的记录,但不会返回任何记录。 对于where子句也会发生同样的事情。 我该怎么做才能过滤范围内的记录 我正在使用以下代码来阅读它 OdbcCommand cmd = new OdbcCommand(); OdbcDataAdapter da = […]

在C#3.5中生成dBase II DBF文件

我正在生成dbf文件以导入到只接受dBase II OR III的旧系统。 我的答案是.Net 3.5。 我最初开始使用这个组件VFPOLEDB.1,但它只生成dBase V格式的dbf文件,这不是向后兼容的。 任何人都知道在dBase II或III中生成de dbf文件的组件或驱动程序 谢谢

如何使用C#/ .NET ODBC或OLE读取/写入dBase III文件?

我已经搜索了有关如何使用OLEDB或ODBC与C#/ .NET读取/写入dBase III(dbf)文件的各种技术。 我已经尝试了几乎所有的tecniques,但没有成功。 有人能指出我正确的方向吗? 谢谢你的时间。