C# 连接到DB2fori(AS400)

C# 连接到DB2fori(AS400),c#,.net,db2-400,C#,.net,Db2 400,我正在尝试编写控制台应用程序,以便使用C#连接到DB2 for I。我有小代码只是为了测试连接第一,但我得到下面的错误,我无法找到这个错误的原因。我使用IBM.Data.DB2。请放点灯 错误消息: Unhandled Exception: System.TypeInitializationException: The type initializer for 'IBM.Data.DB2.DB2Trace' threw an exception. ---> System.IO.FileNo

我正在尝试编写控制台应用程序,以便使用C#连接到DB2 for I。我有小代码只是为了测试连接第一,但我得到下面的错误,我无法找到这个错误的原因。我使用IBM.Data.DB2。请放点灯

错误消息:

Unhandled Exception: System.TypeInitializationException: The type initializer for 'IBM.Data.DB2.DB2Trace' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.Security.Permissions, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The system cannot find the file specified.
   at IBM.Data.DB2.DB2ConnPool.GetDB2ConnPool()
   at IBM.Data.DB2.DB2ConnPool..ctor()
   at IBM.Data.DB2.DB2Trace..cctor()
   --- End of inner exception stack trace ---
   at IBM.Data.DB2.DB2Connection..ctor(String connectionString)
   at something.Program.Main(String[] args) in C:\c#\something\something\Program.cs:line 16
Press any key to continue . . .

    DB2Connection Con = new DB2Connection("Server=myserver; Database=dbname; UID=Db2admin; PWD=password;");

    DB2Command cmd = new DB2Command();

    cmd.CommandText = "Select * from Reports";

    cmd.Connection = Con;

    cmd.CommandTimeout = 60;

    Con.Open();

    DB2DataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
根据,您的.Net数据提供程序应该是
IBM.data.DB2.iSeries


您可能还希望在for系统命名规则中指定
NAM=1
。这将允许使用连接作业的库列表查找对象,而不是到处硬编码模式名称[即库名称]。这使得在其他环境中运行(例如测试)更容易,而无需更改任何源代码,只需更改连接字符串以指定不同的库列表[
DBQ
property]

看起来您的应用程序找不到连接到DB2所需的驱动程序。如果DLL不在应用程序环境路径中,通常会导致此类错误。请告诉我是哪个DLL?它需要在sln目录中吗?@prakash尝试像这样更改连接
DB2Connection Con=new DB2Connection(“Database=dbname;UserID=db2admin;Password=yourPass;Server=myserver”)。。。并尝试将库名称放在
报告之前
…您是否尝试过使用
IBM.Data.DB2.iSeries