使用.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适配器编写大部分代码。