C#中有没有什么好的方法,在SqlConnection open 前对数据库服务器进行判断

C#中有没有什么好的方法,在SqlConnection open 前对数据库服务器进行判断,第1张

private SqlConnection conn;

public SqlConnection Conn

{

get

{

string Stringconn = "Data Source=;Initial Catalog=LHHDB;Persist Security Info=True;User ID=sa;Password=fubing";

if (conn == null) //如果连接是空的。就创建一个。

{

conn = new SqlConnection(Stringconn);

connOpen();

}

else if (connState == SystemDataConnectionStateBroken) //如果连接已损坏就关闭在 开启 {

connClose();

connOpen();

}

else if (connState == SystemDataConnectionStateClosed) // 如果是关闭的,就开启。

{

connOpen();

}

return conn;

}

}

不知道 楼主是不是这意思。

1、打开sql server 配置管理器,找到里面的SQL server 网络配置,然后实例名的协议(我的实例名为SQLEXPRESS)。如下图所示

2、将SQLEXPRESS协议中的Named Pipes和 TCP/IP启用。如下图所示:

3、点击SQL Server服务,将SQL Server(SQLEXPRESS)重新启动。如下图所示:

4、重新打开SQL Server Management Studio ,服务器类型选择数据库引擎,服务器名称填(local)\实例名  或者 计算机名\实例名 ,身份验证选择windows身份验证。如下图所示:

5、点击连接,这时就会登陆进去。如下图所示:

要求

下面的列表列出了推荐使用的硬件、软件、网络架构以及所需的 Service Pack:

Microsoft SQL Server 70、Microsoft SQL Server 2000 或 Microsoft SQL Server 2005 的可用实例

Microsoft Visual Basic 60(针对使用 Visual Basic 的 ADO 示例

本文的部分内容假定您熟悉下列主题:

数据传输服务

链接服务器和分布式查询

Visual Basic 中的 ADO 开发

回到顶端

示例

导入与追加

本文使用的示例 SQL 语句演示了“创建表”查询。该查询通过使用 SELECTINTOFROM 语法将 Excel 数据导入新的 SQL Server 表。如这些代码示例所示,在继续引用源对象和目标对象时,可以通过使用 INSERT INTOSELECTFROM 语法将这些语句转换成追加查询。

使用 DTS 或 SSIS

可以使用“SQL Server Data Transformation Services (DTS) 导入向导”或“SQL Server 导入和导出向导”将 Excel 数据导入到 SQL Server 表中。在逐步执行向导并选择 Excel 源表时,要记住附加美元符号 ($) 的 Excel 对象名称代表工作表(例如,Sheet1$),而没有美元符号的普通对象名称代表 Excel 指定的范围。

使用链接服务器

要简化查询,可以将 Excel 工作簿配置为 SQL Server 中的链接服务器。 有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

306397 如何:结合 SQL Server 链接的服务器和分布式查询使用 Excel

下列代码将 Excel 链接服务器“EXCELLINK”上的 Customers 工作表数据导入新的名为 XLImport1 的 SQL Server 表:

SELECT INTO XLImport1 FROM EXCELLINK[Customers$]

还可以通过按照以下方式使用 OPENQUERY 以全通过方式对源数据执行查询:

SELECT INTO XLImport2 FROM OPENQUERY(EXCELLINK,

'SELECT FROM [Customers$]')

使用分布式查询

如果不想将对 Excel 工作簿的永久连接配置为链接服务器,可以通过使用 OPENDATASOURCE 或 OPENROWSET 函数为特定目的导入数据。下列代码示例也能将 Excel Customers 工作表数据导入新的 SQL Server 表:

SELECT INTO XLImport3 FROM OPENDATASOURCE('MicrosoftJetOLEDB40',

'Data Source=C:\test\xltestxls;Extended Properties=Excel 80')[Customers$]

SELECT INTO XLImport4 FROM OPENROWSET('MicrosoftJetOLEDB40',

'Excel 80;Database=C:\test\xltestxls', [Customers$])

SELECT INTO XLImport5 FROM OPENROWSET('MicrosoftJetOLEDB40',

'Excel 80;Database=C:\test\xltestxls', 'SELECT FROM [Customers$]')

使用 ADO 和 SQLOLEDB

当通过使用 Microsoft OLE DB for SQL Server (SQLOLEDB) 在 ADO 应用程序中连接到 SQL Server 时,可以使用与“使用分布式查询” 一节中相同的“分布式查询”语法将 Excel 数据导入 SQL Server。

下列 Visual Basic 60 代码示例要求添加对 ActiveX 数据对象 (ADO) 的项目引用。此代码示例还演示了如何在 SQLOLEDB 连接上使用 OPENDATASOURCE 和 OPENROWSET。

Dim cn As ADODBConnection

Dim strSQL As String

Dim lngRecsAff As Long

Set cn = New ADODBConnection

cnOpen "Provider=SQLOLEDB;Data Source=<server>;" & _

"Initial Catalog=<database>;User ID=<user>;Password=<password>"

'Import by using OPENDATASOURCE

strSQL = "SELECT INTO XLImport6 FROM " & _

"OPENDATASOURCE('MicrosoftJetOLEDB40', " & _

"'Data Source=C:\test\xltestxls;" & _

"Extended Properties=Excel 80')[Customers$]"

DebugPrint strSQL

cnExecute strSQL, lngRecsAff, adExecuteNoRecords

DebugPrint "Records affected: " & lngRecsAff

'Import by using OPENROWSET and object name

strSQL = "SELECT INTO XLImport7 FROM " & _

"OPENROWSET('MicrosoftJetOLEDB40', " & _

"'Excel 80;Database=C:\test\xltestxls', " & _

"[Customers$])"

DebugPrint strSQL

cnExecute strSQL, lngRecsAff, adExecuteNoRecords

DebugPrint "Records affected: " & lngRecsAff

'Import by using OPENROWSET and SELECT query

strSQL = "SELECT INTO XLImport8 FROM " & _

"OPENROWSET('MicrosoftJetOLEDB40', " & _

"'Excel 80;Database=C:\test\xltestxls', " & _

"'SELECT FROM [Customers$]')"

DebugPrint strSQL

cnExecute strSQL, lngRecsAff, adExecuteNoRecords

DebugPrint "Records affected: " & lngRecsAff

cnClose

Set cn = Nothing

使用 ADO 和 Jet Provider

上一节中的示例使用 ADO 和 SQLOLEDB Provider 连接到从 Excel 到 SQL 导入的目标。也可以使用 OLE DB Provider for Jet 40 来连接到 Excel 源。

Jet 数据引擎可以通过使用具有三种不同格式的特殊语法来在 SQL 语句中引用外部数据库:

[Full path to Microsoft Access database][Table Name]

[ISAM Name;ISAM Connection String][Table Name]

[ODBC;ODBC Connection String][Table Name]

本节使用第三种格式创建到目标 SQL Server 数据库的 ODBC 连接。可以使用 ODBC 数据源名称 (DSN) 或者 DSN-less 连接字符串:

DSN:

[odbc;DSN=<DSN name>;UID=<user>;PWD=<password>]

DSN-less:

[odbc;Driver={SQL Server};Server=<server>;Database=<database>;

UID=<user>;PWD=<password>]

下列 Visual Basic 60 代码示例要求添加对 ADO 的项目引用。此代码示例演示了如何使用 Jet 40 Provider 通过 ADO 连接将 Excel 数据导入到 SQL Server。

Dim cn As ADODBConnection

Dim strSQL As String

Dim lngRecsAff As Long

Set cn = New ADODBConnection

cnOpen "Provider=MicrosoftJetOLEDB40;" & _

"Data Source=C:\test\xltesttxls;" & _

"Extended Properties=Excel 80"

'Import by using Jet Provider

strSQL = "SELECT INTO [odbc;Driver={SQL Server};" & _

"Server=<server>;Database=<database>;" & _

"UID=<user>;PWD=<password>]XLImport9 " & _

"FROM [Customers$]"

DebugPrint strSQL

cnExecute strSQL, lngRecsAff, adExecuteNoRecords

DebugPrint "Records affected: " & lngRecsAff

cnClose

Set cn = Nothing

也可以通过使用该语法(Jet Provider 支持)将 Excel 数据导入其他 Microsoft Access 数据库、索引顺序存取方法 (ISAM)(“desktop”)数据库或 ODBC 数据库。

参考资料:

http://webdegree-distancecom/eh/

拜托楼上的微软的专家,请对症下药,不要复制点东西就拿过来对付,这个提示怎么可能是身份验证引起的呢?

提示这个错误的根本原因是连接不到IP127001的1433端口,可能原因就很多了。

在开始菜单“运行”里执行

SQLServerManagermsc

打开配置管理器。

在“SQL Server 2005服务”节点看一看服务是否启动。

在“SQL Server 2005的网络配置”节点,看一看是否启用了TCP/IP,如果启用了的话,双击TCP/IP,在“IP地址”里看一下127001对应的“活动”值是否为“是”,如果不是“是”改成“是”之后重启SQL Server 。 另外还要看一下是用的动态端口还是固定端口。如果安装的不是默认实例,用得就是动态端口。

SQL Server 不存在或拒绝访问在网上找到的相关的解决方法:

(A)1:你如果是独立上网的请把21端口打开局域网把1433端口打开就可以了

2;关闭防火墙!

(B)把数据库连接的 SqlLocalName="(local)" 的(local) 改成 IP试试。可以把(local) 该成127001,或者改成外网IP

(C)打开服务,暂停全文检索及sql server服务 开启sql server服务 再开启全文检索服务

(D)SQL Server 右键属性==>安全选项中的“所有权链接:”“允许跨数据库所有权链接”前面的勾要勾上(此操作需要重起SQL Server)。

我试用了上面的方法都没有起到作用,最后在微软的网站上面下载了SQL的sp3补丁装上去了以后就可以正常安装运行

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » C#中有没有什么好的方法,在SqlConnection open 前对数据库服务器进行判断

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情