C#中有没有什么好的方法,在SqlConnection open 前对数据库服务器进行判断
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 数据库。
参考资料:
拜托楼上的微软的专家,请对症下药,不要复制点东西就拿过来对付,这个提示怎么可能是身份验证引起的呢?
提示这个错误的根本原因是连接不到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补丁装上去了以后就可以正常安装运行
0条评论