检查系统DSN并创建系统DSN(如果不存在)(iSeries Access ODBC驱动程序)

有人可以帮我这个吗? 我需要通过系统DSN检查我与AS400服务器的ODBC连接,并创建一个系统DSN(如果某个特定的不存在)。 我试过谷歌搜索,但一直没能找到对我好的东西。

顺便说一下,我对编程很陌生。 任何帮助都感激不尽。 谢谢

在浏览了几个不那么复杂的在线例子之后,这就是我设法提出的(它对我来说很好)。

using System; using System.Runtime.InteropServices; public class ODBC_Manager { [DllImport("ODBCCP32.dll")] public static extern bool SQLConfigDataSource(IntPtr parent, int request, string driver, string attributes); [DllImport("ODBCCP32.dll")] public static extern int SQLGetPrivateProfileString(string lpszSection, string lpszEntry, string lpszDefault, string @RetBuffer, int cbRetBuffer, string lpszFilename); private const short ODBC_ADD_DSN = 1; private const short ODBC_CONFIG_DSN = 2; private const short ODBC_REMOVE_DSN = 3; private const short ODBC_ADD_SYS_DSN = 4; private const short ODBC_CONFIG_SYS_DSN = 5; private const short ODBC_REMOVE_SYS_DSN = 6; private const int vbAPINull = 0; public void CreateDSN(string strDSNName) { string strDriver; string strAttributes; try { string strDSN = ""; string _server = //ip address of the server string _user = //username string _pass = //password string _description = //not required. give a description if you want to strDriver = "iSeries Access ODBC Driver"; strAttributes = "DSN=" + strDSNName + "\0"; strAttributes += "SYSTEM=" + _server + "\0"; strAttributes += "UID=" + _user + "\0"; strAttributes += "PWD=" + _pass + "\0"; strDSN = strDSN + "System = " + _server + "\n"; strDSN = strDSN + "Description = " + _description + "\n"; if (SQLConfigDataSource((IntPtr)vbAPINull, ODBC_ADD_SYS_DSN, strDriver, strAttributes)) { Console.WriteLine("DSN was created successfully"); } else { Console.WriteLine("DSN creation failed..."); } } catch (Exception ex) { if (ex.InnerException != null) { Console.WriteLine(ex.InnerException.ToString()); } else { Console.WriteLine(ex.Message.ToString()); } } } public int CheckForDSN(string strDSNName) { int iData; string strRetBuff = ""; iData = SQLGetPrivateProfileString("ODBC Data Sources", strDSNName, "", strRetBuff, 200, "odbc.ini"); return iData; } } 

…然后从您的应用程序中调用方法。

 static void Main(string[] args) { ODBC_Manager odbc = new ODBC_Manager(); string dsnName = //Name of the DSN connection here if (odbc.CheckForDSN(dsnName) > 0) { Console.WriteLine("\n\nODBC Connection " + dsnName + " already exists on the system"); } else { Console.WriteLine("\n\nODBC Connection " + dsnName + " does not exist on the system"); Console.WriteLine("\n\nPress 'Y' to create the connection?"); string cont = Console.ReadLine(); if (cont == "Y" || cont == "y") { odbc.CreateDSN(dsnName); Environment.Exit(1); } else { Environment.Exit(1); } } }