使用sql连接到as400

时间:2012-06-10 00:29:17

标签: c# ado.net db2 oledb ibm-midrange

我认为这将是一个相当普遍的事情,并且很容易在谷歌中找到,但到目前为止我没有太多运气。我希望我的应用程序使用某种方法连接到i-series AS400系统,在SQL物理文件上运行AS400语句,返回结果集,然后让我的视觉效果c#程序处理结果集。我听说过ADODB, ODBC, DB2, and OLEDB。有人能告诉我一个让这些方法之一起作用的语法示例吗?我更喜欢使用一种不依赖于某些软件(如客户端访问)的方法,并且由于您必须配置DSN,我试图避免使用ODBC之类的东西。我搜索过并搜索过,但我能找到的代码最多的是连接字符串应该是什么样子。任何帮助表示赞赏!

谢谢!

1 个答案:

答案 0 :(得分:2)

我在搜索过程中发现了这个问题。

您可以使用OLEDB连接连接到IBM iSeries并运行SQL查询然后检索结果,但您需要先执行一些步骤。

  1. 您需要AS400 .Net数据提供商。 - http://www-03.ibm.com/systems/power/software/i/access/windows/dotnet.html

  2. 您需要编写连接字符串。 - http://www.connectionstrings.com/as-400

  3. 一些代码,然后

    string ConnectionString = AS400ConnectionString;
    OleDbConnection _Connection = new OleDbConnection(ConnectionString);
    OleDbCommand _Command = _Connection.CreateCommand();
    
                string strQuery = string.Empty;
                strQuery += @"SELECT * FROM Contacts";
    
                if (string.IsNullOrEmpty(strQuery))
                {
                    throw (new Exception("No Library Setup"));
                }
    
                _Command.CommandText = strQuery;
                if (_Connection.State != ConnectionState.Open)
                    _Connection.Open();
    
                OleDbDataReader reader = _Command.ExecuteReader();
    
                while (reader.Read())
                {
                    //Your Logic
                }
    
                reader.Close();
                if (_Connection.State != ConnectionState.Closed)
                    _Connection.Close();