2010-07-26 48 views
35

Tôi đang cố gắng xây dựng một ứng dụng web .NET bằng cách sử dụng SQL để truy vấn cơ sở dữ liệu AS400. Đây là lần đầu tiên tôi gặp phải AS400.Kết nối với AS400 bằng cách sử dụng .NET

Tôi phải cài đặt gì trên máy của mình (hoặc máy chủ AS400) để kết nối? (Truy cập IBM iSeries cho Windows ??)

Các thành phần của chuỗi kết nối là gì?

Tôi có thể tìm mã mẫu để xây dựng Lớp Truy cập dữ liệu bằng cách sử dụng lệnh SQL ở đâu?

Cảm ơn.

Trả lời

24

Bạn cần nhà cung cấp dữ liệu AS400 .Net. Kiểm tra ở đây: http://www-03.ibm.com/systems/i/software/access/windows/dotnet/index.html

Đối với mẫu chuỗi kết nối, kiểm tra ở đây: http://www.connectionstrings.com/as-400

Ngoài ra, hãy kiểm tra Redbook cho các ví dụ mã và bắt đầu. http://www.redbooks.ibm.com/redbooks/pdfs/sg246440.pdf

+0

Không có liên kết tải xuống cho nhà cung cấp dữ liệu .NET đó. Điều đó đi kèm với chính AS400? – madatanic

+1

Tham khảo liên kết này: http://forums.asp.net/p/1497318/3610952.aspx Theo đó, nó phải nằm trong thư mục sau miễn là bạn đã cài đặt IBM iSeries Access cho Windows Client: C: \ Program Files \ IBM \ Client Access \ IBM.Data.DB2.iSeries.dll – dcp

+0

Xin lỗi, có lẽ tôi không rõ câu hỏi của tôi. Tôi có thể truy cập vào IBM iSeries Access cho Windows Client ở đâu? – madatanic

0

Tôi đang sử dụng mã này và làm việc rất tốt cho tôi!

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 
9

Sau đây là những gì tôi đã làm để giải quyết vấn đề.

Cài đặt IBM i Access for Windows. Không được tự do

giới thiệu dlls sau trong dự án

  • IBM.Data.DB2.iSeries.dll
  • Interop.cwbx.dll (Nếu Queue dữ liệu được sử dụng)
  • Interop.AD400.dll (Nếu Queue dữ liệu sử dụng)

Data Access

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

Connection String

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

CẬP NHẬT

IBM không có kế hoạch để hỗ trợ IBM i Truy cập dành cho Windows trên hệ điều hành ngoài Windows 8.1. Các sản phẩm thay thế là IBM i Truy cập Giải pháp Khách hàng

IBM i Access Client Solutions

0

thời gian gần đây tôi phát hiện người lái xe ADO.Net sẵn trên NuGet. Tôi có quyền truy cập máy khách iSeries được cài đặt trên máy tính của tôi, vì vậy tôi không thể nói nếu nó hoạt động như một độc lập, nhưng nó kết nối. Vấn đề duy nhất là tôi không thể nhìn thấy bất kỳ bảng hoặc thủ tục nào. Tôi nghĩ rằng có thể có một lược đồ hoặc thư viện hoặc một cái gì đó tôi vẫn chưa nhận được xuống.Tôi sẽ đăng nếu tôi tìm thấy câu trả lời. Trong khi đó tôi vẫn có thể đến máy chủ và viết hầu hết mã của tôi với bộ điều hợp NuGet.

Các vấn đề liên quan