看完就全明白了.

using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            // "uid=sa":连接数据库的用户名为sa.
            // "password=":连接数据库的验证密码为空.他的别名为"pwd",所以我们可以写为"pwd=".
            // "initial catalog=Northwind":使用的数据源为"Northwind"这个数据库.他的别名为"Database",本句可以写成"Database=Northwind".
            // "Server=YourSQLServer":使用名为"YourSQLServer"的服务器.他的别名为"Data Source","Address","Addr".
            // " Connect Timeout=30":连接超时时间为30秒.(根据情况添加)
            // PS:
            //  1.你的SQL Server必须已经设置了需要用户名和密码来登录,否则不能用这样的方式来登录.如果你的SQL Server设置为Windows登录,那么在这里就不需要使用"uid"和"password"这样的方式来登录,而需要使用"Trusted_Connection=SSPI"来进行登录.
            //  2. 如果使用的是本地数据库且定义了实例名,则可以写为"Server=(local)/实例名";如果是远程服务器,则将"(local)"替换为远程服务器的名称或IP地址.
            string strConnection = "Trusted_Connection=SSPI;";
            strConnection += "database=NTF_Navision_enlistment60;Server=CAIXIATA-6BE823;";
            strConnection += "Connect Timeout=30";
            using (SqlConnection objConnection = new SqlConnection(strConnection))
            {
                objConnection.Open();
                // method 1
                SqlCommand myCommand = new SqlCommand("select * from Couse", objConnection);

Console.WriteLine("open");
                SqlDataReader myReader = myCommand.ExecuteReader();
                while (myReader.Read())
                {
                    Console.WriteLine(myReader.GetFieldType(0));
                    Console.WriteLine(myReader.GetFieldType(1));
                    Console.WriteLine(myReader.GetFieldType(2));
                    Console.WriteLine(myReader.GetDecimal(0));
                    Console.WriteLine(myReader.GetDecimal(1));
                    Console.WriteLine(myReader.GetDecimal(2));
                }
                myReader.Close();

// method 2
                SqlDataAdapter myCommandd = new SqlDataAdapter("select * from Couse", objConnection);
                DataSet ds = new DataSet();
                myCommandd.Fill(ds, "Couse");
                DataTable dt = ds.Tables["couse"];
                Console.WriteLine(dt.Columns[0].ToString());
                Console.WriteLine(dt.DefaultView.Count);
            }
        }
    }
}

两种连接方式

//用数据库用户连接登录方式
                //con = new SqlConnection("server=localhost//sqlexpress;uid=sa;pwd=;database=ManHourStat");
                //con = new SqlConnection("server=.//sqlexpress;uid=sa;pwd=;database=ManHourStat");
                //con = new SqlConnection("server=.//sqlexpress;User ID=sa;pwd=;database=ManHourStat");
                //con = new SqlConnection("server=.//sqlexpress;User ID=sa;Password=;database=ManHourStat");

//关于sql连接语句中的Integrated Security=SSPI
                //解决方法:
                //即:Security Support Provider Interface
                //设置Integrated Security为 True 的时候,连接语句前面的 UserID, PW 是不起作用的,即采用windows身份验证模式。
                //只有设置为 False 或省略该项的时候,才按照 UserID, PW 来连接。
                //Integrated Security 可以设置为: True, false, yes, no ,这四个的意思很明白了,还可以设置为:sspi ,相当于 True,建议用这个代替 True。

//windows 登录方式
                //con = new SqlConnection("Data Source=localhost//sqlexpress;Initial Catalog=ManHourStat;Integrated Security=True");
                //con = new SqlConnection("Data Source=.//sqlexpress;Initial Catalog=ManHourStat;Integrated Security=SSPI");

昨天在测试程序的时候,出现 SQL 的连接错误。因为之前使用的是 Microsoft SQL Server 2000,现在测试用的是 Microsoft SQL Server 2005 ,所以第一反应感觉应该是连接字符串的改变。

搜索“SQL Server 2005 连接字符串代码”,可以找到很多内容。

因为之前使用的是 OLE DB 连接,所以依然使用这个。

Microsoft SQL Server 2000 下的连接字符串为:
Provider=SQLOLEDB;Data Source=server;Initial Catalog=database;User Id=user;Password=password;

或者
Provider=SQLOLEDB;Server=server;Database=database;Uid=user;Pwd=password;

Microsoft SQL Server 2005 下的连接字符串为:
Provider=SQLNCLI;Data Source=server;Initial Catalog=database;User Id=user;Password=password;

或者
Provider=SQLNCLI;Server=server;Database=database;Uid=user;Pwd=password;

变化,就在于 Provider 后的内容。

SQL Server 2005 连接字符串代码
作者:  来源:   发布日期:2008-04-07  
 
SQL Native Client ODBC Driver
 
标准安全连接
   
Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
 
您是否在使用SQL Server 2005 Express? 请在“Server”选项使用连接表达式“主机名称//SQLEXPRESS”。 
  
受信的连接
   
Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;
 
/"Integrated Security=SSPI/" 与 /"Trusted_Connection=yes/" 是相同的。
  
连接到一个SQL Server实例
指定服务器实例的表达式和其他SQL Server的连接字符串相同。  
Driver={SQL Native Client};Server=myServerName//theInstanceName;Database=myDataBase;Trusted_Connection=yes;
 
   
指定用户名和密码
oConn.Properties(/"Prompt/") = adPromptAlways

Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;
 
   
使用MARS (multiple active result sets)
   
Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;MARS_Connection=yes;
 
/"MultipleActiveResultSets=true/"与MARS_Connection=yes/"是相同的。
使用ADO.NET 2.0作为MARS的模块。 MARS不支持ADO.NET 1.0和ADO.NET 1.1。
  
验证网络数据
   
Driver={SQL Native Client};Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;Encrypt=yes;
 
   
使用附加本地数据库文件的方式连接到本地SQL Server Express实例
   
Driver={SQL Native Client};Server=.//SQLExpress;AttachDbFilename=c://asd//qwe//mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
 
为何要使用Database参数?如果同名的数据库已经被附加,那么SQL Server将不会重新附加。 
  
使用附加本地数据文件夹中的数据库文件的方式连接到本地SQL Server Express实例
   
Driver={SQL Native Client};Server=.//SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
 
为何要使用Database参数?如果同名的数据库已经被附加,那么SQL Server将不会重新附加。
  
数据库镜像
Data Source=myServerAddress;Failover Partner=myMirrorServer;Initial Catalog=myDataBase;Integrated Security=True;
 
 
  
SQL Native Client OLE DB Provider
 
标准连接
   
Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
 
您是否在使用SQL Server 2005 Express? 请在“Server”选项使用连接表达式“主机名称//SQLEXPRESS”。 
  
受信的连接
   
Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes; [Page]
 
/"Integrated Security=SSPI/"与/"Trusted_Connection=yes/"相同
  
连接到SQL Server实例
指定服务器实例的表达式和其他SQL Server的连接字符串相同。  
Provider=SQLNCLI;Server=myServerName//theInstanceName;Database=myDataBase;Trusted_Connection=yes;
 
   
使用帐号和密码
oConn.Properties(/"Prompt/") = adPromptAlways

oConn.Open /"Provider=SQLNCLI;Server=myServerAddress;DataBase=myDataBase;
 
   
使用MARS (multiple active result sets)
   
Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;MarsConn=yes;
 
/"MultipleActiveResultSets=true/"和/"MARS_Connection=yes/"是相同的。
使用ADO.NET 2.0作为MARS的模块。 MARS不支持ADO.NET 1.0和ADO.NET 1.1。
  
验证网络数据
   
Provider=SQLNCLI;Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;Encrypt=yes;
 
   
使用附加本地数据库文件的方式连接到本地SQL Server Express实例
   
Provider=SQLNCLI;Server=.//SQLExpress;AttachDbFilename=c://asd//qwe//mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
 
为何要使用Database参数?如果同名的数据库已经被附加,那么SQL Server将不会重新附加。
  
使用附加本地数据文件夹中的数据库文件的方式连接到本地SQL Server Express实例
   
Provider=SQLNCLI;Server=.//SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
 
为何要使用Database参数?如果同名的数据库已经被附加,那么SQL Server将不会重新附加。
  
数据库镜像
Data Source=myServerAddress;Failover Partner=myMirrorServer;Initial Catalog=myDataBase;Integrated Security=True;
 
 
  
SqlConnection (.NET)
 
标准连接
   
Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
 
使用serverName//instanceName作为数据源可以指定SQL Server实例。
您是否在使用SQL Server 2005 Express? 请在“Server”选项使用连接表达式“主机名称//SQLEXPRESS”。 
  
Standard Security alternative syntax
 
Server=myServerAddress;Database=myDataBase;User ID=myUsername;Password=myPassword;Trusted_Connection=False;
 
   
受信任的连接
   
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
 
   
Trusted Connection alternative syntax
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
 
   
连接到一个SQL Server的实例
指定服务器实例的表达式和其他SQL Server的连接字符串相同。   [Page]
Server=myServerName//theInstanceName;Database=myDataBase;Trusted_Connection=True;
 
   
来自WinCE设备的安全连接
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;User ID=myDomain//myUsername;Password=myPassword;
 
仅能用于CE设备。
  
带有IP地址的连接
   
Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsername;Password=myPassword;
 
 
  
使用MARS (multiple active result sets)
   
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;MultipleActiveResultSets=true;
 
使用ADO.NET 2.0作为MARS的模块。 MARS不支持ADO.NET 1.0和ADO.NET 1.1。
  
使用附加本地数据库文件的方式连接到本地SQL Server Express实例
   
Server=.//SQLExpress;AttachDbFilename=c://asd//qwe//mydbfile.mdf;Database=dbname;Trusted_Connection=Yes;
 
为何要使用Database参数?如果同名的数据库已经被附加,那么SQL Server将不会重新附加。
  
使用附加本地数据文件夹中的数据库文件的方式连接到本地SQL Server Express实例
   
Server=.//SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
 
为何要使用Database参数?如果同名的数据库已经被附加,那么SQL Server将不会重新附加。
  
使用在SQL Server Express实例上的用户实例
Data Source=.//SQLExpress;Integrated Security=true;AttachDbFilename=|DataDirectory|//mydb.mdf;User Instance=true;
 
数据库镜像
Data Source=myServerAddress;Failover Partner=myMirrorServer;Initial Catalog=myDataBase;Integrated Security=True;
 
Asynchronous processing
Server=myServerAddress;Database=myDataBase;Integrated Security=True;Asynchronous Processing=True;

///

SQL Server 2005 Remote Access
在使用SQL Server 2005的远程连接时,如果遇到连接不上的问题,请按下列步骤操作:
1。server要保证在SQL Server Configuration Manager里的SQL Server 2005 Network Configuration里,确保TCP/IP的protocol是enable的。
2。client也要保证Native的TCP/IP protocol也enable。
3。当然要确保server的sql server服务已经开启。
4。server如果开了firewall,在exceptions里添加1433 port。

ADO连接SQL Server 2005 Express的连接字符串问题?
ADO连接SQL Server 2005 Express(默认实例安装)的字符串(OLE DB provider)如何写的???我是这么写的总是不能成功。

CString strConn="Provider=SQLNCLI;Server=.//SQLExpress;Database=MyTest;Trusted_Connection=yes";

我的SQL server express安装时候选择的是windows安全认证,没有设定sa密码的。

请指点。谢谢!
温柔的大海 发表于 2007-9-12 03:54

更改了一下就可以了,发现如果是默认实例安装,不要指明安装实例名字,否则出错,可能默认实例名字并不是SQLExpress吧。如果是命名实例才需要指明。关于连接字符串,大家可以参考这个网站的总结:www.connectionstrings.com

还发现,如果是默认实例安装,则连接字符串甚至不用给出server信息也可以连接本机SQL库。
strConn="Provider=SQLNCLI;Database=MyTest;Trusted_Connection=yes"也可以成功连接。发现有时候数据库连接很严格,有时候又很宽松,nnd。

try                
{
CString strConn="Provider=SQLNCLI;Server=localhost;Database=MyTest;Trusted_Connection=yes;";
BSTR bstrConn=strConn.AllocSysString();
// 打开本地SQL Server 2005 Express
m_pConnection->Open(bstrConn,"","",adModeUnknown);

}
catch(_com_error e)
{
//AfxMessageBox(e.ErrorMessage());
AfxMessageBox(e.Description());
//AfxMessageBox(e.ErrorInfo());
return FALSE;
}

//stdafx.h
#import "c:/program files/common files/system/ado/msado15.dll" no_namespace rename("EOF","adoEOF")
//主程序初始化函数
BOOL CADO2App::InitInstance()
{
AfxEnableControlContainer();

AfxOleInit();//初始化COM库
//--------------------------------------------
下面是ACCESS的:
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr)) {
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb","","",adModeUnknown);///连接数据库
///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:Provider=Microsoft.Jet.OLEDB.3.51; }
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!/r/n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
return FALSE;
}
下面是连接SQL SERVER的
CString strSQL;
HRESULT hr;
try
{
hr=m_pConnection.CreateInstance(__uuidof(Connection));
m_pConnection->CursorLocation=adUseClient;
strSQL="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TEST;Data Source=yjm";
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open(_bstr_t(strSQL),"","",-1);
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!/r/n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
return FALSE;
}
//AfxMessageBox("connected~~");
其中:
----- ADO连接SQL Server的数据库连接字符串模板 ----------

身份验证模式为:"sql server和windows"
Provider=SQLOLEDB.1;Persist Security Info=True;User ID=用户名;Password=密码;Initial Catalog=数据库名;Data Source=SQL服务器名

身份验证模式为:"仅windows"
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=数据库名;Data Source=SQL服务器名

C# 连接sql 2005相关推荐

  1. Eclipse如何连接SQL Server 2005数据库

    做管理系统当然少不了经常与数据库打交道,在网上搜了很多数据库版本都不小,大的有好几个G的,小的也有几百兆的,我这可怜的内存,最终找了个精简版中的精简版的Sql server2005,只有80几兆,本来 ...

  2. PDA连接远程SQL 2005数据库

    最近因为项目里面需要用到一个使用PDA连接远程SQL 2005数据库,进行数据操作的功能,程序DeBug下的exe文件可以正常连接数据库及相关的数据操作,但是只要一部署到PDA上面就提示 无法找到 D ...

  3. Java/JSP中使用JDBC连接SQL Server 2000/2005

    转自:http://hi.baidu.com/huangdonghui/blog/item/87cf4ff47ba653e37609d7e1.html/cmtid/9c82350965721ba22e ...

  4. SSMS 2005 连接 SQL SERVER 2008问题

    用本机的 Microsoft SQL Server Management Studio 2005 客户端连接数据库服务器时报错:"This version of Microsoft SQL ...

  5. Java/JSP中使用JDBC连接SQL Server 2005(转自 秋忆)

    接触Java或者JSP,难免会使用到数据库SQL Server 2000/2005(我使用2005标准版[9.0.3054]测试),经过自己的搜索和研究,使用JDBC连接SQL Server成功,特此 ...

  6. php java sql_java如何连接sql数据库?

    1.准备工作: 准备相关的软件(Eclipse除外,开源软件可以从官网下载) <1>.Microsoft SQL server 2005 Express Edition 下载地址:http ...

  7. C# 连接SQL数据库字符串

    一:C# 连接SQL数据库   Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=m ...

  8. 使用JDBC连接SQL Server数据库

    1.准备工作: 准备相关的软件(Eclipse除外,开源软件可以从官网下载) <1>.Microsoft SQL server 2005 Express Edition 下载地址:http ...

  9. 在已有SQL 2005 Server 群集中添加节点

    在已有SQL 2005 Server 群集中添加节点 在SQL群集中一个节点不可用后,需要重新安装操作系统,然后再进行群集节点恢复工作.其基本操作流程如下: 1. 在正常可用的节点上打开群集管理器,进 ...

  10. SQL 2005安装问题解决办法

    解决方案' 用户 'sa' 登录失败.该用户与可信 SQL Server 连接无关联 问题一.忘记了登录Microsoft SQL Server 2005 的sa的登录密码 解决方法:先用window ...

最新文章

  1. UNIX高手应该保持的习惯
  2. 北京数码视讯s905l固件_神州数码与MAXHUB构建更紧密的伙伴关系,共同开启可持续发展之旅...
  3. jqGrid文字根据表格大小自动换行
  4. 【深度学习】三维点云数据集总结
  5. HoloLens 2开发:HoloLens开发VS安装与配置
  6. 转----cer文件和pfx文件的区别
  7. 人工智能革命:人类将永生或者灭绝
  8. SQL文件切割工具、大文件操作工具
  9. 石子合并,四边形不等式优化(Buy Candy,玲珑杯 Round#6 A lonlife 1066)
  10. 视频处理及MAX7456的图文解释
  11. 好男人都死到哪去了?
  12. 读写文件时缓冲区多大好呢?我来告诉大家哈
  13. CFile、CStdioFile、FILE和其他文件操作
  14. Java_Map_Map详解
  15. CREATE TABLE 时的 SQL UNIQUE 约束
  16. Python实现摩尔斯电码和英文互译
  17. Spring 整合Quartz 2实现定时任务四:细化调整及一些已知的问题
  18. 软考中级 真题 2014年上半年 系统集成项目管理工程师 应用技术 下午试卷
  19. 【NOIP2011】聪明的质检员
  20. 软件测试真的很重要!——软件测试的作用

热门文章

  1. IDEA 中git使用非默认ssh客户端进行登录
  2. Google 团队效能研究 | 为什么雇用最聪明的人是远远不够的? 1
  3. win server 2008 r2设置teamviewer13无人值守和开机自启动
  4. 机器学习分类模型评价指标和方法
  5. 最常用的四种设计模式
  6. 微软将Silverlight主要定位在Windows Phone,其他平台更多推向HTML5
  7. 无法创建 ActiveX 组件(转载)
  8. php前台怎么显示图片,长沙培训php开发(php怎么显示图片)
  9. java怎么复制别人的数据库_数据库实现主从复制
  10. winform 显示分隔控件_WinForm使用Label控件模拟分割线(竖向)