1.有没有人成功地将c#中的ODBC用于Sybase ASE?
2.或者更好,有没有人成功地将Sybase ASE与.NET Core一起使用?SYBASE ODBC .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()) {
...
}
的Command.ExecuteReader却()中我不断接收以下错误: System.Data.Odbc.OdbcException:“ERROR [ZZZZZ] [SAP] [ASE ODBC驱动程序] [Adaptive Server Enterprise]过程iKYC_GetLookUp期望未提供参数@Type。
我试图使用类型有和没有@但每个产生相同的错误。
我没有尝试其他几种口味以及:
- command.CommandText = “{(?)调用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 = ParameterDirection.InputOutput;
p.Value = "ACC";
cmd.Parameters.Add(p);
由于之前在说,如果我做的参数为空,存储过程中,代码工作并且数据按预期返回,因此问题似乎在传递参数附近。
有没有人成功地将c#中的ODBC用于Sybase ASE? 有没有人成功使用Sybase ASE和.NET Core?
其他信息: 我正在使用Visual Studio 2017(v 15.2)。 Core 1.1并使用Sybase ASE 16.0 sp2。
与SAP对Core的支持相同,零帮助。将看看你的实现! –
非常感谢你分享这家提供商。 SAP/SYBASE是如此的痛苦。 – chris