C# OLEDBEException:未实现函数
有人知道发生了什么吗?它确实删除了所有记录,但仍然返回异常C# OLEDBEException:未实现函数,c#,asp.net,oledb,foxpro,oledbconnection,C#,Asp.net,Oledb,Foxpro,Oledbconnection,有人知道发生了什么吗?它确实删除了所有记录,但仍然返回异常 OleDbConnection dbConn = new OleDbConnection(@"Provider=vfpoledb;Data Source=C:\foxpro"); try { dbConn.Open(); using (OleDbCommand command = dbConn.CreateCommand()) { comm
OleDbConnection dbConn = new OleDbConnection(@"Provider=vfpoledb;Data Source=C:\foxpro");
try
{
dbConn.Open();
using (OleDbCommand command = dbConn.CreateCommand())
{
command.CommandText = "execscript[('USE table in 0' + chr(13) + chr(10) + 'DELETE ALL')]";
command.ExecuteNonQuery();
}
}
catch (Exception ex)
{
Response.Write(ex.ToString());
}
finally
{
dbConn.Close();
}
例外情况是:
System.Data.OleDb.OleDbException (0x80004005): Function is not implemented. at
System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) at
System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) at
System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at
System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) at
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at
System.Data.OleDb.OleDbCommand.ExecuteNonQuery() at backbuttonclicked.Page_Load(Object sender,
EventArgs e) in e:\MyProjects\programs\FujiDocumentsPrinting\backbuttonclicked.aspx.cs:line 31
您可以尝试以下操作:
command.CommandText = "DELETE FROM tablename1";
command.ExecuteNonQuery();
这也将从文件中删除所有记录。文件“tablename1.dbf”应放在“C:\foxpro\”文件夹中。否则,请在SQL命令文本中使用完整文件名。我已经成功地使用以下代码完成了这类工作:
string connectionString = @"Provider=VFPOLEDB.1;Data Source=c:\foxpro";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
using (OleDbCommand scriptCommand = connection.CreateCommand())
{
connection.Open();
string vfpScript = @"SET EXCLUSIVE ON
USE table
DELETE ALL
PACK";
scriptCommand.CommandType = CommandType.StoredProcedure;
scriptCommand.CommandText = "ExecScript";
scriptCommand.Parameters.Add("myScript", OleDbType.Char).Value = vfpScript;
scriptCommand.ExecuteNonQuery();
}
}
DELETE ALL
将记录标记为已删除,但不会将其从表中删除。如果这是您想要的,则删除PACK
命令,该命令将删除dbf中标记为已删除的所有记录。您的一个触发器中有一个try catch,这是未实现的功能。今天遇到了同样的问题 Foxpro表是否可能属于数据库容器(.DBC)?如果是这样的话,可能是DBC中的逻辑导致了问题。我复制了您的代码并更改了表名,它确实打包了所有已删除的记录,但仍然返回一个异常函数。在programs\fujidocumentsprint\backbuttonclicked.aspx.cs:line 31
上的代码是什么?ZAP可以替换这两行:“DELETE all”并使用Visual FoxPro 9.0的OLE DB提供程序“打包”,错误消失