mad*_*nic 38 .net c# sql asp.net ibm-midrange
我正在尝试使用SQL构建一个.NET Web应用程序来查询AS400数据库.这是我第一次遇到AS400.
我需要在我的机器(或AS400服务器)上安装什么才能连接?(IBM iSeries Access for Windows ??)
连接字符串的组成部分是什么?
在哪里可以找到使用SQL命令构建数据访问层的示例代码?
谢谢.
dcp*_*dcp 28
您需要AS400 .Net数据提供程序.点击此处:https: //www-01-01.ibm.com/support/docview.wss?uid = isg3T1027163
有关连接字符串示例,请访问:https: //www.connectionstrings.com/as-400/
另外,请查看红皮书以获取代码示例并开始使用. http://www.redbooks.ibm.com/redbooks/pdfs/sg246440.pdf
LCJ*_*LCJ 10
以下是我为解决问题所做的工作.
装了IBM i Access for Windows.不是免费的
在项目中引用了以下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();
}
Run Code Online (Sandbox Code Playgroud)
连接字符串
<add name="InterfaceConnection"
connectionString="Data Source=myserver.mycompany.com;User ID=idbname;Password=mypassxxx;
Default Collection=ASIPTA;Naming=System"/>
Run Code Online (Sandbox Code Playgroud)
UPDATE
IBM不打算在Windows 8.1以外的操作系统上支持IBM i Access for Windows.替代产品是IBM i Access Client Solutions
小智 5
如其他答案中所述,如果您已经安装了IBM i Access客户端,那么可以使用IBM.Data.DB2.iSeries软件包。
如果您没有IBM i Access软件,则可以利用JTOpen并使用Java驱动程序。您将需要nuget软件包JT400.78,它将插入IKVM运行时。
就我而言,我需要查询AS400上的DB2数据库并输出一个DataTable。我发现了一些提示和少量代码片段,但是没有什么全面的内容,因此我想分享一下我能够建立的内容,以防它对其他人有帮助:
using com.ibm.as400.access;
using java.sql;
var sql = "SELECT * FROM FOO WITH UR";
DriverManager.registerDriver(new com.ibm.as400.access.AS400JDBCDriver());
Connection conn = DriverManager.getConnection(
"jdbc:as400:" + ServerName + ";prompt=false", UserName, Password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData md = rs.getMetaData();
int ct = md.getColumnCount();
DataTable dt = new DataTable();
for(int i=1; i<=ct; i++)
dt.Columns.Add(md.getColumnName(i));
while (rs.next())
{
var dr = dt.NewRow();
for (int i = 1; i <= ct; i++)
dr[i - 1] = rs.getObject(i);
dt.Rows.Add(dr);
}
rs.close();
Run Code Online (Sandbox Code Playgroud)
从RecordSet到DataTable的转换有些笨拙,给我回想起VBScript时代的糟糕回忆。性能可能并不会很快使人眼花,乱,但它确实有效。