C# SunGard Investran OLE DB提供程序使用情况
我需要从我的C应用程序中使用SunGard Investran的OLEDB提供程序,并从带有参数的报告中获取数据。我能够连接数据库,但无法获取数据。应用程序崩溃,异常代码为c0000005。请提供一些关于如何使用此功能的指导 我在64位win server 2008 R2上运行此程序。 这是我正在使用的代码。它在获取数据的最后一行崩溃C# SunGard Investran OLE DB提供程序使用情况,c#,.net,oledb,C#,.net,Oledb,我需要从我的C应用程序中使用SunGard Investran的OLEDB提供程序,并从带有参数的报告中获取数据。我能够连接数据库,但无法获取数据。应用程序崩溃,异常代码为c0000005。请提供一些关于如何使用此功能的指导 我在64位win server 2008 R2上运行此程序。 这是我正在使用的代码。它在获取数据的最后一行崩溃 string connect = "Provider=ftiRSOLEDB.RSOLEDBProvider;Password=xxxxxxxx;User ID=x
string connect = "Provider=ftiRSOLEDB.RSOLEDBProvider;Password=xxxxxxxx;User ID=xxxxxx;Initial Catalog=xxxx;Data Source=xxxxxx;";
using (OleDbConnection conn = new OleDbConnection(connect))
{
using (OleDbCommand cmd = new OleDbCommand())
{
cmd.Connection = conn;
cmd.CommandText = "[ReportFolder].[ReportName]";
//conn.Open();
OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
adapter.Fill(ds);
}
}
您没有来自命令文本的实际命令
cmd.CommandText = "select * from SomeTable where ... ";
如果ReportFolder是数据库中的表,ReportName是列,那么如果需要所有记录,则不需要WHERE子句
cmd.CommandText = "select ReportName from ReportFolder";
现在,如果您想添加参数,例如报告类型或其他什么,请确保正确地参数化它们,但我不熟悉数据库的占位符语法。例如,在visualfoxprovfp中?是一个占位符,在SQL Server中是@,在SyBase中是它的优势:例如查询将成为
cmd.CommandText = "select * from YourTable where Something = @someParmToApply";
cmd.Parameters.Add( "someParmToApply", "this thing" );
然后继续执行查询。。。如果您有多个参数,只需确保它们与查询中显示的顺序相同即可。。。这使它更容易理解。我知道了语法。它是特定于OLEDB提供商的。下面是语法,以防其他人使用它
cmd.CommandText = "\"ReportFolder\".\"ReportName\" FLAGS[/SILENT]";
也可以这样添加参数
cmd.CommandText = "\"ReportFolder\".\"ReportName\" \"ParamName=value\" FLAGS[/SILENT]";
您需要添加崩溃的代码片段。如果没有它,将很难为您提供帮助。我已经尝试使用select*from ReportFolder.ReportName。ReportName是表名,ReportFolder是架构。它引发oledb异常,消息“ftiRSOLEDB.RSOLEDBProvider”失败,没有可用的错误消息,结果代码:-21472209410x80040233。