大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> NET专区 -> 获取Sql服务器列表 (C#)

获取Sql服务器列表 (C#)

时间: 2021-07-31 作者:daque

如何实行这个功效大师确定早都领会了,放上去是给本人留个备份运用:private void button1_click_1(object sender, system.eventargs e)...{ string[] servers = dbgrep.sqllocator.getservers(); foreach ( string s in servers ) ...{ this.listbox1.items.add(s); }}类的代码using system;using system.text;using system.windows.forms;using system.runtime.interopservices;namespace dbgrep...{ public class sqllocator ...{ [dllimport("odbc32.dll")] private static extern short sqlallochandle(short htype, intptr inputhandle, out intptr outputhandle); [dllimport("odbc32.dll")] private static extern short sqlsetenvattr(intptr henv, int attribute, intptr valueptr, int strlength); [dllimport("odbc32.dll")] private static extern short sqlfreehandle(short htype, intptr handle); [dllimport("odbc32.dll",charset=charset.ansi)] private static extern short sqlbrowseconnect(intptr hconn, stringbuilder instring, short instringlength, stringbuilder outstring, short outstringlength, out short outlengthneeded); private const short sql_handle_env = 1; private const short sql_handle_dbc = 2; private const int sql_attr_odbc_version = 200; private const int sql_ov_odbc3 = 3; private const short sql_success = 0; private const short sql_need_data = 99; private const short default_result_size = 1024; private const string sql_driver_str = "driver=sql server"; private sqllocator()...{} public static string[] getservers() ...{ string[] retval = null; string txt = string.empty; intptr henv = intptr.zero; intptr hconn = intptr.zero; stringbuilder instring = new stringbuilder(sql_driver_str); stringbuilder outstring = new stringbuilder(default_result_size); short instringlength = (short) instring.length; short lenneeded = 0; try ...{ if (sql_success == sqlallochandle(sql_handle_env, henv, out henv)) ...{ if (sql_success == sqlsetenvattr(henv,sql_attr_odbc_version,(intptr)sql_ov_odbc3,0)) ...{ if (sql_success == sqlallochandle(sql_handle_dbc, henv, out hconn)) ...{ if (sql_need_data == sqlbrowseconnect(hconn, instring, instringlength, outstring, default_result_size, out lenneeded)) ...{ if (default_result_size < lenneeded) ...{ outstring.capacity = lenneeded; if (sql_need_data != sqlbrowseconnect(hconn, instring, instringlength, outstring, lenneeded,out lenneeded)) ...{ throw new applicationexception("unabled to aquire sql servers from odbc driver."); } } txt = outstring.tostring(); int start = txt.indexof("{") + 1; int len = txt.indexof("}") - start; if ((start > 0) && (len > 0)) ...{ txt = txt.substring(start,len); } else ...{ txt = string.empty; } } } } } } catch (exception ex) ...{ //throw away any error if we are not in debug mode#if (debug) messagebox.show(ex.message,"acquire sql servier list error");#endif txt = string.empty; } finally ...{ if (hconn != intptr.zero) ...{ sqlfreehandle(sql_handle_dbc,hconn); } if (henv != intptr.zero) ...{ sqlfreehandle(sql_handle_env,hconn); } } if (txt.length > 0) ...{ retval = txt.split(",".tochararray()); } return retval; } }}

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.