扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
.net 列出局域网内所有的SQLserver服务器的名字
成都创新互联专注于网站建设|成都网站维护公司|优化|托管以及网络推广,积累了大量的网站设计与制作经验,为许多企业提供了网站定制设计服务,案例作品覆盖社区文化墙等行业。能根据企业所处的行业与销售的产品,结合品牌形象的塑造,量身设计品质网站。
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Text;
using System.Runtime.InteropServices;
namespace showSqlServer
{
/**//// summary
/// Form1 的摘要说明。
/// /summary
public class Form1 : System.Windows.Forms.Form
{
/**//// summary
/// 必需的设计器变量。
/// /summary
private System.ComponentModel.Container components = null;
[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 System.Windows.Forms.ComboBox comboBox1;
private const string SQL_DRIVER_STR = "DRIVER=SQL SERVER";
public Form1()
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
//
}
public 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)
{
#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;
}
/**//// summary
/// 清理所有正在使用的资源。
/// /summary
protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
Windows 窗体设计器生成的代码#region Windows 窗体设计器生成的代码
/**//// summary
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// /summary
private void InitializeComponent()
{
this.comboBox1 = new System.Windows.Forms.ComboBox();
this.SuspendLayout();
//
// comboBox1
//
this.comboBox1.Location = new System.Drawing.Point(56, 32);
this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(121, 20);
this.comboBox1.TabIndex = 0;
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(440, 302);
this.Controls.Add(this.comboBox1);
this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false);
}
#endregion
/**//// summary
/// 应用程序的主入口点。
/// /summary
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void Form1_Load(object sender, System.EventArgs e)
{
this.comboBox1.Items.Clear();
string[] SqlServer=this.GetServers();
if(SqlServer==null ||SqlServer.Length==0)
return;
foreach(string server in SqlServer)
{
this.comboBox1.Items.Add(server);
}
if(this.comboBox1.Items.Count0)
this.comboBox1.SelectedIndex=0;
}
}
}
sql
server查看版本信息的方法
一、SQL
server2000及以下版本
1、启动客户端工具:SQL查询分析器并选择服务器,选择身份验证方式,如果选择SQL
server身份验证,需要输入登录名和密码
2、在查询窗口输入SQL语句:select
@@version
3、点击“执行”按钮,即可查询SQL服务器版本
二、SQL
server2000以上版本
1、打开Microsoft
SQL
server
management
studio,选择要连接的服务器,选择身份验证方式,如果选择SQL
server身份验证,需要输入登录名和密码
2、选择任意数据库,点击鼠标右键,弹出菜单点击“新建查询”
2、在查询窗口输入SQL语句:select
@@version
3、点击“执行”按钮,即可查询SQL服务器版本
c# 远程连接数据库SQL
远程连接有点复杂,首先要保证客户端与SQL服务器连接
步骤:
一 看ping 服务器IP能否ping通。
这个实际上是看和远程sql server 2000服务器的物理连接是否存在。如果不行,请检查网络,查 看配
置,当然得确保远程sql server 2000服务器的IP拼写正确。
二 在Dos或命令行下输入telnet 服务器IP 端口,看能否连通。
如telnet 202.114.100.100 1433
通常端口值是1433,因为1433是sql server 2000的对于Tcp/IP的默认侦听端口。如果有问题,通常这
一步会出问题。通常的提示是“……无法打开连接,连接 失败"。
如果这一步有问题,应该检查以下选项。
1 检查远程服务器是否启动了sql server 2000服务。如果没有,则启动。
2 检查服务器端有没启用Tcp/IP协议,因为远程连接(通过因特网)需要靠这个协检查方法是,在服
务器上打开开始菜单-程序-Microsoft SQL Server-服务器网络实用工具,看启用的协议里
是否有tcp/ip协议,如果没有,则启用它。
3 检查服务器的tcp/ip端口是否配置为1433端口。仍然在服务器网络实用工具里查看启用协议里面的
tcp/ip的属性,确保默认端口为1433,并且隐藏服务器复选框 没有勾上。
事实上,如果默认端口被修改,也是可以的,但是在客户端做telnet测试时,写服务器端口号时必须
与服务器配置的端口号保持一致。如果隐藏服务器复选框被勾 选,则意味着客户端无法通过枚
举服务器来看到这台服务器,起到了保护的作用, 但不影响连接,但是Tcp/ip协议的默认端口将被
隐式修改为2433,在客户端连接 时必须作相应的改变。
4 如果服务器端操作系统打过sp2补丁,则要对windows防火墙作一定的配置,要对它开放1433端口,
通常在测试时可以直接关掉windows防火墙(其他的防火墙也 关掉最好)。
5 检查服务器是否在1433端口侦听。如果服务器没有在tcp连接的1433端口侦听,则是连接不上的。检
查方法是在服务器的dos或命令行下面输入
netstat -a -n 或者是netstat -an,在结果列表里看是否有类似 tcp 127.0.0.1 1433 listening
的项。如果没有,则通常需要给sql server 2000打上至少sp3的补丁。其实在服务器端启动查询分
析器,输入 select @@version 执行后可以看到版本号,版本号在8.0.2039以下的都需要打补丁。
如果以上都没问题,这时你再做telnet 服务器ip 1433 测试,将会看到屏幕一 闪之后光标在左上
角不停闪动。恭喜你,你马上可以开始在企业管理器或查询分析 器连接了。
三 检查客户端设置
程序-Microsoft SQL Server - 客户端网络使用工具。像在服务器网络实用工具里一样,确保客 户端
tcp/ip协议启用,并且默认端口为1433(或其他端口,与服 务器端保持一致就行)。
四 在企业管理器里或查询那分析器连接测试
企业管理器-右键SQlserver组-新建sqlserver注册-下一步-写入远程IP- 下一步-选Sqlserver登陆-
下一步-写入登陆名与密码(sa,password)-下一 步-下一步-完成 查询分析器-文件-连接-写
入远程IP-写入登录名和密码(sa,password)-确 定
通常建议在查询分析器里做,因为默认情况下,通过企业管理器注册另外一台SQL Server的超时设置
是4秒,而查询分析器是15秒。
修改默认连接超时的方法:
企业管理器-工具-选项-在弹出的"SQL Server企业管理器属性"窗口中,点击"高级"选项卡-连接设
置-在登录超时(秒) 后面的框里输入一个较大的数字
查询分析器-工具-选项-连接-在登录超时(秒) 后面的框里输入一个较大的数 字
通常就可以连通了,如果提示错误,则进入下一步。
五 错误产生的原因通常是由于SQL Server使用了"仅 Windows"的身份验证方式,因 此用户无法使 用
SQL Server的登录帐户(如 sa )进行连接。解决方法如下所示:
1 在服务器端使用企业管理器,并且选择"使用 Windows 身份验证"连接上 SQL Server。
2 展开"SQL Server组",鼠标右键点击SQL Server服务器的名称,选择"属性",再选择"安全性"选项卡。
3 在"身份验证"下,选择"SQL Server和 Windows "。
4 重新启动SQL Server服务。(在dos或命令行下面net stop mssqlserver停止服务, net start mssqlserver启
动服务,也是一种快捷的方法)。
附注:在连接本地服务器时,通常使用的是命名管道协议(在服务器网络实用工具里可以看到启用的
协议有这个),默认端口是445,因此在本地能连通是不能说明什么问题的,连接远程服务器是完全
不同的协议)
//如果是在远程连接sql2000,采用下面连接字符串
// string source = "database=Northwind;Server=192.168.1.181,1433;User ID=sa;Password=sa;Persist Security Info=True";
需要到主机查看访问记录。
SQL是英文StructuredQueryLanguage的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQLServer是由Microsoft开发和推广的关系数据库管理系统(RDBMS)。
SQLServer是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。MicrosoftSQLServer近年来不断更新版本,1996年,Microsoft推出了SQLServer6、5版本;1998年,SQLServer7、0版本和用户见面;SQLServer2000是Microsoft公司于2000年推出,目前最新版本是2019年份推出的SQLSERVER2019。
1、首先需要知道SQL Server默认用户名是sa,密码是安装的时候设置的密码,连接服务器的时候选择SQL Server身份验证,输入用户名和密码就完成了。
2、如果忘记了安装设置的默认密码,选择Windows身份验证,然后进去修改默认用户的密码就可以了。
3、进去之后,点击安全性-登录名-sa,如下图所示。
4、然后鼠标右键sa用户,选择属性,如下图所示。
5、进去之后,输入要设置的密码,这里设置123456,点击确定,就成功设置了默认用户的密码。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流