小编Mon*_*Man的帖子

SYBASE ODBC .Net CORE

1.有没有人成功地将c#中的ODBC用于Sybase ASE?
2.或者更好,有没有人成功地将Sybase ASE与.NET Core一起使用?

我使用的是.NET Core 1.1,当前的Sybase.AdoNet4.AseClient.dll不起作用,因此我尝试使用ODBC.我试过使用两个ODBC包:

  • Mono.Data.OdbcCore(NuGet)
  • MSA.Net.Core.ODBC(NuGet)

两者都适用于内联查询,并且两者都可以很好地调用没有参数的Sybase存储过程但在尝试将参数发送到需要参数的sp时都具有相同的确切错误.

这是一个片段:

command.CommandType = CommandType.StoredProcedure;
command.CommandText = "XX_GetLookUp";
command.Parameters.Add("@Type", OdbcType.VarChar).Value = "ACC";
using (var reader = command.ExecuteReader()) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

我在命令期间不断收到以下错误.ExecuteReader(): System.Data.Odbc.OdbcException:'ERROR [ZZZZZ] [SAP] [ASE ODBC驱动程序] [Adaptive Server Enterprise]过程iKYC_GetLookUp需要参数@Type,这不是提供.

我试图使用带有和没有@的Type但每个都生成相同的错误.

我也尝试了其他几种口味:

  • command.CommandText ="{call dbo.iKYC_GetLookUp(?)}";
  • command.CommandText ="{call dbo.iKYC_GetLookUp}";
  • command.CommandText ="{dbo.iKYC_GetLookUp(?)}";
  • command.CommandText ="dbo.iKYC_GetLookUp(?)";
  • command.CommandText ="dbo.iKYC_GetLookUp?";

上面每个生成的位置:System.Runtime.InteropServices.SEHException:'外部组件抛出异常.'

我也尝试将参数对象分开构建,没有运气(同样的错误,缺少@Type):

OdbcParameter p = new OdbcParameter();
p.ParameterName = "@Type";
p.DbType = DbType.AnsiString;
p.Direction = …
Run Code Online (Sandbox Code Playgroud)

asp.net odbc sybase-ase asp.net-core

10
推荐指数
1
解决办法
766
查看次数

标签 统计

asp.net ×1

asp.net-core ×1

odbc ×1

sybase-ase ×1