C#编程向VFP数据库中插入Numeric型的值(foxpro,dbf)

简介:             C#编程向VFP数据库中插入Numeric型的值    最近做一个C#程序,实现将SQLServer中的数据导入到Visual Foxpro6.0的.dbf数据文件中。更新Numeric类型字段的值时出现错误: System.

    
        C#编程向VFP数据库中插入Numeric型的值 
 
  最近做一个C#程序,实现将SQLServer中的数据导入到Visual Foxpro6.0的.dbf数据文件中。更新Numeric类型字段的值时出现错误:
System.Data.Odbc.OdbcException:ERROR [22018] [Microsoft][ODBC Visual FoxPro Driver]Data type mismatch.
原程序类似如下:
//------------------------------------------------------------------------
//到.dbf数据库文件的ODBC连接字符串
string strOdbcConn = @" DRIVER=Microsoft Visual FoxProDriver;UID=;Collate=Machine;BackgroundFetch=Yes;      Exclusive=No;SourceType=DBF;SourceDB="+ strFilePath +";";
//获取DataTable
string strSQL = "Select * From table1 ;
DataSet dataSet = new DataSet();   
OdbcDataAdapter odbcDA = new OdbcDataAdapter(strSQL,strOdbcConn);
odbcDA.Fill(dataSet,"table1");
DataTable table = dataSet.Tables["table1"];
//向DataTable中添加记录    
DataRow row = table.NewRow();
row["DateFrom"] = Convert.ToDateTime("2005-09-10");//日期型字段
row["Num"]      = Convert.ToDecimal(10);//Numric(16,0)型字段
table.Rows.Add(row);
//更新到数据库中
OdbcCommandBuilder builder = new OdbcCommandBuilder(odbcDA);
odbcDA.InsertCommand = builder.GetInsertCommand();
odbcDA.Update(dataSet,"table1");
//----------------------------------------------------------------
  程序运行时,在对row["Num"]赋值时并不出错,执行到oodbcDA.Update(dataSet,"table1");时出错,根源就在于对row["Num"]的赋值,实在找不到好的解决办法。(谁有直接对row["Num"]的赋值的好办法,欢迎赐教
  后来,用SQL语句测试,如:update table1 set Num=10;执行正确,就想用SQL语句insert解决,经测试可行。
SQL-Insert语句如下:
  Insert Into table1(DateFrom, Num) Values({^2005-09-10},10)
  程序相应的改成如下的了:
//------------------------------------------------------------------
string strOdbcConn = @" DRIVER=Microsoft Visual FoxProDriver;UID=;Collate=Machine;BackgroundFetch=Yes;      Exclusive=No;SourceType=DBF;SourceDB="+ strFilePath +";";
OdbcConnection odbcConn = new OdbcConnection(strOdbcConn);
string sqlInsert = "Insert Into table1(DateFrom, Num) Values({^2005-09-10},10)";
OdbcCommand odbcComm = new OdbcCommand(sqlInsert,odbcConn);
odbcComm.Connection.Open();
odbcComm.ExecuteNonQuery();
odbcConn.Close();
//----------------------------------------------------------------

========================================================
其它关于VFP的信息:

1.VFP-SQL语句
----插入日期值:
insert into 1able1(日期字段) values({^2005-09-10})
----不支持如下语句(insert-select):
insert into table1
select * from table2

2.MS OLE DB Provider for VFP :
微软网站:http://www.microsoft.com/downloads/details.aspx?FamilyID=e1a87d8f-2d58-491f-a0fa-95a3289c5fd4&DisplayLang=en提供了Microsoft OLE DB Provider for Visual FoxPro 9.0,会对编写访问VFP数据的程序有帮助。

3.更多微软Visual FoxPro资源:
http://www.microsoft.com/downloads/info.aspx?na=13&p=1&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=&u=%2fdownloads%2fbrowse.aspx%3fdisplaylang%3den%26productID%3dE794F2FC-0425-40AD-A292-39490679FA65

4.记住这个连接字符串:
string strOdbcConn = @" DRIVER=Microsoft Visual FoxProDriver;UID=;Collate=Machine;BackgroundFetch=Yes;      Exclusive=No;SourceType=DBF;SourceDB=D:\DataDBF\table1.dbf;";

===============================================================

夏春涛的blog: http://summerrain.cnblogs.com/
email: xchuntao@163.com   或   xchuntao@gmail.com
QQ: 23106676
msn: xchuntao@163.com

 


 

目录
相关文章
|
1月前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
40 3
|
8天前
|
存储 安全 编译器
学懂C#编程:属性(Property)的概念定义及使用详解
通过深入理解和使用C#的属性,可以编写更清晰、简洁和高效的代码,为开发高质量的应用程序奠定基础。
45 12
|
3天前
|
SQL Java 数据库连接
JDBC编程安装———通过代码操控数据库
本文,教你从0开始学习JBCD,包括驱动包的下载安装调试设置,以及java是如何通过JBDC实现对数据库的操作,以及代码的分析,超级详细
|
1月前
|
设计模式 C# 图形学
Unity 游戏引擎 C# 编程:一分钟浅谈
本文介绍了在 Unity 游戏开发中使用 C# 的基础知识和常见问题。从 `MonoBehavior` 类的基础用法,到变量和属性的管理,再到空引用异常、资源管理和性能优化等常见问题的解决方法。文章还探讨了单例模式、事件系统和数据持久化等高级话题,旨在帮助开发者避免常见错误,提升游戏开发效率。
58 4
|
1月前
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
38 1
|
1月前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
|
1月前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)
本文接续前文,深入讲解了在Windows环境下使用C#和ADO.NET操作南大通用GBase 8s数据库的方法。通过Visual Studio 2022创建项目,添加GBase 8s的DLL引用,并提供了详细的C#代码示例,涵盖数据库连接、表的创建与修改、数据的增删查改等操作,旨在帮助开发者提高数据库管理效率。
|
3月前
|
API C#
C# 一分钟浅谈:文件系统编程
在软件开发中,文件系统操作至关重要。本文将带你快速掌握C#中文件系统编程的基础知识,涵盖基本概念、常见问题及解决方法。文章详细介绍了`System.IO`命名空间下的关键类库,并通过示例代码展示了路径处理、异常处理、并发访问等技巧,还提供了异步API和流压缩等高级技巧,帮助你写出更健壮的代码。
54 2
|
2月前
|
安全 C# 数据安全/隐私保护
实现C#编程文件夹加锁保护
【10月更文挑战第16天】本文介绍了两种用 C# 实现文件夹保护的方法:一是通过设置文件系统权限,阻止普通用户访问;二是使用加密技术,对文件夹中的文件进行加密,防止未授权访问。提供了示例代码和使用方法,适用于不同安全需求的场景。
153 0
|
2月前
|
SQL 缓存 大数据
C#高效处理大数据的批次处理,以及最好的数据库设计
C#高效处理大数据的批次处理,以及最好的数据库设计
93 0