使用.NET连接到AS400

我正在尝试使用SQL来构build一个.NET Web应用程序来查询AS400数据库。 这是我第一次遇到AS400。

我需要在我的机器(或AS400服务器)上安装什么才能连接? (IBM iSeries Access Windows版)

连接string的组成部分是什么?

哪里可以find使用SQL命令构build数据访问层的示例代码?

谢谢。

您需要AS400 .Net数据提供程序。 请点击此处: http : //www-03.ibm.com/systems/i/software/access/windows/dotnet/index.html

对于连接string示例,请查看: http : //www.connectionstrings.com/as-400

此外,请查看代码示例的红皮书并开始使用。 redbooks/pdfs/sg246440.pdf

安装IBM i Access for Windows 。 不是免费的

在项目中引用下面的dll

  • IBM.Data.DB2.iSeries.dll
  • Interop.cwbx.dll(如果使用数据队列)
  • Interop.AD400.dll(如果使用数据队列)

数据访问

  using (iDB2Command command = new iDB2Command()) { command.Connection = (iDB2Connection)_connection; command.CommandType = CommandType.Text; command.Parameters.AddWithValue(Constants.ParamInterfaceTransactionNo, 1); command.CommandText = dynamicInsertString; command.ExecuteScalar(); } 

连接string

 <add name="InterfaceConnection" connectionString="Data Source=myserver.mycompany.com;User ID=idbname;Password=mypassxxx; Default Collection=ASIPTA;Naming=System"/> 

UPDATE

IBM不打算在Windows 8.1之外的操作系统上支持IBM i Access for Windows。 替代产品是IBM i Access Client解决scheme

IBM i Access Client解决scheme

我使用这个代码,对我来说工作很好!

  Try Dim sqltxt As String = "SELECT * FROM mplib.pfcarfib where LOTEF=" & My.Settings.loteproceso dt1 = New DataTable Dim ConAS400 As New OleDb.OleDbConnection ConAS400.ConnectionString = "Provider=IBMDA400;" & _ "Data Source=192.168.100.100;" & _ "User ID=" & My.Settings.usuario & ";" & _ "Password=" & My.Settings.contrasena Dim CmdAS400 As New OleDb.OleDbCommand(sqltxt, ConAS400) Dim sqlAS400 As New OleDb.OleDbDataAdapter sqlAS400.SelectCommand = CmdAS400 ConAS400.Open() sqlAS400.Fill(dt1) grid_detalle.DataSource = dt1 grid_detalle.DataMember = dt1.TableName Catch ex As Exception DevExpress.XtraEditors.XtraMessageBox.Show("Comunicación Con El AS400 No Establecida, Notifique a Informatica..", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error) Me.Close() End Try 

我最近在NuGet上find了可用的ADO.Net驱动程序。 我的电脑上安装了iSeries客户端访问,所以我不能说它是否作为独立工作,但它确实连接。 唯一的问题是我实际上看不到任何表或程序。 我认为可能有一个架构或者图书馆,或者我还没有想到的东西。 我会发布,如果我find答案。 同时我仍然可以到达服务器,并使用NuGet适配器编写大部分代码。