免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4609 | 回复: 3
打印 上一主题 下一主题

NET Framework Data Provider for SQL Server [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-15 16:10 |只看该作者 |倒序浏览
NET Framework Data Provider for SQL Server
类型: .NET Framework Class Library
用法: System.Data.SqlClient.SqlConnection
制造商:  Microsoft
更多相关信息 »
返回顶部
标准连接
Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsernameassword=myPassword;
如果您正在使用SQL Server 2008 Express,在指库服务器名的时候,使用服务器名\实例名 作为数据源,来连接一个指定的SQL Server实例。
复制代码
标准链接的另一种写法
与上一种连接字符串效果一样,原因是连接字符串里很多关键字是等效的。
Server=myServerAddress;Database=myDataBase;User ID=myUsernameassword=myPassword;Trusted_Connection=False;
复制代码
信任连接
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
复制代码
信任连接的另一种写法
与上一种连接字符串效果一样,原因是连接字符串里很多关键字是等效的。
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;
复制代码
连接到一个SQL Server 实例
指定数据库实例的键值的语法,与其他SQL Server连接字符串相同。
Server=myServerName\theInstanceName;Database=myDataBase;Trusted_Connection=True;
复制代码
信任连接CE设备
通常CE设备不会验证和登录到一个域。要在CE设备上使用SSPI或者信任连接,需要使用这样的连接字符串:
Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;User ID=myDomain\myUsernameassword=myPassword;
需要注意的是,这种语法只能用户连接CE设备。
更多有关CE设备连接SQL Server的资料 请单击这里
复制代码
通过IP地址连接
Data Source=190.190.200.100,1433;Network Library=DBMSSOCN;Initial Catalog=myDataBase;User ID=myUsernameassword=myPassword;
DBMSSOCN=TCP/IP. 这是使用TCI/IP通道的方法。Data Source值的最后要指定端口号,1433是SQL Server默认的端口号。
如何确定要使用的网络协议
复制代码
开启MARS功能
Server=myServerAddress;Database=myDataBase;Trusted_Connection=True; MultipleActiveResultSets=true;
MARS: multiple active result sets,即多活动结果集,是.NET Framework 2.0 版中新增的。ADO.NET 1.0 和 ADO.NET 1.1中并不支持此功能。
移植到MARS,简化数据库连接 from DevX.com
复制代码
在本地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实例中使用一个用户实例
这个方法只能在本地SQL Server实例中运行,同时需要通过本地命名管道进行Winodws身份验证。其目的是在本机上,为拥有管理员权限的用户创建一个全部全权限的SQL Server实例。
Data Source=.\SQLExpress;Integrated Security=true; AttachDbFilename=|DataDirectory|\mydb.mdf;User Instance=true;
在SQL Server中开启用户实例功能才可以使用。开启用户实例功能可以执行: sp_configure 'user instances enabled', '1',关闭用户实例功能可以执行: sp_configure 'user instances enabled', '0'
复制代码
数据库镜像
如果使用ADO.NET或SQL Native Client连接数据库是,当主服务器出现故障时,您的应用程序可以自动连接到伙伴服务器上。这这种语法中,除了主服务器和数据库外,还需要指定伙伴服务器属性。
Data Source=myServerAddress;Failover Partner=myMirrorServerAddress;Initial Catalog=myDataBase;Integrated Security=True;
数据库镜像的连接字符串有很多种方法,这里仅仅示例了故障转移功能的语法。您可以在此基础上在连接字符串中设置其他的选项。
复制代码
异步处理
创建一个SQL Server连接, 允许异步请求的ADO.NET对象
Server=myServerAddress;Database=myDataBase;Integrated Security=True;Asynchronous Processing=True;
复制代码
SQL Server Native Client 10.0 OLE DB Provider
类型: OLE DB Provider
用法: Provider=SQLNCLI10
制造商:  Microsoft
更多相关信息 »
返回顶部
标准连接
Provider=SQLNCLI10;Server=myServerAddress;Database=myDataBase;Uid=myUsername; Pwd=myPassword;
如果您正在使用SQL Server 2008 Express,在指库服务器名的时候,使用服务器名\实例名 作为数据源,来连接一个指定的SQL Server实例。
复制代码
信任连接
Provider=SQLNCLI10;Server=myServerAddress;Database=myDataBase; Trusted_Connection=yes;
等效键值对: "Integrated Security=SSPI" == "Trusted_Connection=yes"
复制代码
连接到一个SQL Server 实例
指定数据库实例的键值的语法,与其他SQL Server连接字符串相同。
Provider=SQLNCLI10;Server=myServerName\theInstanceName;Database=myDataBase; Trusted_Connection=yes;
复制代码
提示输入用户名与密码
这种语法稍有些复杂。首先你需要将数据库连接对象的 Prompt 属性值设置成 adPromptAlways 。然后再使用连接字符串连接数据库。
oConn.Properties("rompt" = adPromptAlways

oConn.Open "rovider=SQLNCLI10;Server=myServerAddress;DataBase=myDataBase;
复制代码
开启MARS功能
Provider=SQLNCLI10;Server=myServerAddress;Database=myDataBase; Trusted_Connection=yes;MARS Connection=True;
MARS: multiple active result sets,即多活动结果集,是.NET Framework 2.0 版中新增的。ADO.NET 1.0 和 ADO.NET 1.1中并不支持此功能。
SQL Native Client 使用 MARS
复制代码
加密传输数据
Provider=SQLNCLI10;Server=myServerAddress;Database=myDataBase; Trusted_Connection=yes;Encrypt=yes;
复制代码
在本地SQL Server Express实例中附加一个文件
Provider=SQLNCLI10;Server=.\SQLExpress;AttachDbFilename=c:\asd\qwe\mydbfile.mdf; Database=dbname; Trusted_Connection=Yes;
这里需要明确指定Database参数。如果指定的数据库已经被附加,SQL Server将不重新安装数据库文件,而使用已经被附加的数据库作为默认连接。
复制代码
在本地SQL Server Express实例中附加一个文件 与 本地数据路径
Provider=SQLNCLI10;Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
这里需要明确指定Database参数。如果指定的数据库已经被附加,SQL Server将不重新安装数据库文件,而使用已经被附加的数据库作为默认连接。
复制代码
数据库镜像
如果使用ADO.NET或SQL Native Client连接数据库是,当主服务器出现故障时,您的应用程序可以自动连接到伙伴服务器上。这这种语法中,除了主服务器和数据库外,还需要指定伙伴服务器属性。
Provider=SQLNCLI10;Data Source=myServerAddress;Failover Partner=myMirrorServerAddress;Initial Catalog=myDataBase;Integrated Security=True;
数据库镜像的连接字符串有很多种方法,这里仅仅示例了故障转移功能的语法。您可以在此基础上在连接字符串中设置其他的选项。
复制代码
.NET Framework Data Provider for OLE DB
类型: .NET Framework Wrapper Class Library
用法: System.Data.OleDb.OleDbConnection
制造商:  Microsoft
更多相关信息 »
返回顶部
桥接到 SQL Native Client OLE DB
这里仅仅展示了一个OleDbConnection类的连接字符串例子,这个类封装了底层的OLEDB提供程序。结合本例,可以了解各种OLD DB提供程序的更多连接字符串。
Provider=SQLNCLI10;Server=myServerAddress;Database=myDataBase;Uid=myUsername; Pwd=myPassword;
复制代码
SQL Server Native Client 10.0 ODBC Driver
类型: ODBC Driver
用法: Driver={SQL Server Native Client 10.0}
制造商:  Microsoft
更多相关信息 »
返回顶部
标准连接
Driver={SQL Server Native Client 10.0};Server=myServerAddress;Database=myDataBase;Uid=myUsernamewd=myPassword;
如果您正在使用SQL Server 2008 Express,在指库服务器名的时候,使用服务器名\实例名 作为数据源,来连接一个指定的SQL Server实例。
复制代码
信任连接
Driver={SQL Server Native Client 10.0};Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes;
等效键值对: "Integrated Security=SSPI" == "Trusted_Connection=yes"
复制代码
连接到一个SQL Server 实例
指定数据库实例的键值的语法,与其他SQL Server连接字符串相同。
Driver={SQL Server Native Client 10.0};Server=myServerName\theInstanceName; Database=myDataBase;Trusted_Connection=yes;
复制代码
提示输入用户名与密码
这种语法稍有些复杂。首先你需要将数据库连接对象的 Prompt 属性值设置成 adPromptAlways 。然后再使用连接字符串连接数据库。
oConn.Properties("rompt" = adPromptAlways

Driver={SQL Server Native Client 10.0};Server=myServerAddress;Database=myDataBase;
复制代码
开启MARS功能
Driver={SQL Server Native Client 10.0};Server=myServerAddress;Database=myDataBase;Trusted_Connection=yes; MARS_Connection=yes;
MARS: multiple active result sets,即多活动结果集,是.NET Framework 2.0 版中新增的。ADO.NET 1.0 和 ADO.NET 1.1中并不支持此功能。
移植到MARS,简化数据库连接 from DevX.com
复制代码
加密传输数据
Driver={SQL Server Native Client 10.0};Server=myServerAddress;Database=myDataBase; Trusted_Connection=yes;Encrypt=yes;
复制代码
在本地SQL Server Express实例中附加一个文件
Driver={SQL Server Native Client 10.0};Server=.\SQLExpress; AttachDbFilename=c:\asd\qwe\mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
这里需要明确指定Database参数。如果指定的数据库已经被附加,SQL Server将不重新安装数据库文件,而使用已经被附加的数据库作为默认连接。
复制代码
在本地SQL Server Express实例中附加一个文件 与 本地数据路径
Driver={SQL Server Native Client 10.0};Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; Database=dbname;Trusted_Connection=Yes;
这里需要明确指定Database参数。如果指定的数据库已经被附加,SQL Server将不重新安装数据库文件,而使用已经被附加的数据库作为默认连接。
复制代码
数据库镜像
如果使用ADO.NET或SQL Native Client连接数据库是,当主服务器出现故障时,您的应用程序可以自动连接到伙伴服务器上。这这种语法中,除了主服务器和数据库外,还需要指定伙伴服务器属性。
Driver={SQL Server Native Client 10.0};Server=myServerAddress;Failover_Partner=myMirrorServerAddress;Database=myDataBase; Trusted_Connection=yes;
数据库镜像的连接字符串有很多种方法,这里仅仅示例了故障转移功能的语法。您可以在此基础上在连接字符串中设置其他的选项。

请注意,如果你使用TCP/IP和数据库镜像,需要在主服务器和伙伴服务器属性中指定端口号,这样可以解决一些已知的问题。
复制代码
.NET Framework Data Provider for ODBC
类型:  .NET Framework Wrapper Class Library
用法:  System.Data.Odbc.OdbcConnection
制造商:  Microsoft
更多相关信息 »
返回顶部
桥接到SQL Native Client 10.0 ODBC Driver
这里仅仅展示了一个OdbcConnection类的连接字符串例子,这个类封装了底层的ODBC提供程序。结合本例,可以了解各种ODBC提供程序的更多连接字符串。
Driver={SQL Server Native Client 10.0};Server=myServerAddress;Database=myDataBase;Uid=myUsernamewd=myPassword;
复制代码
SQLXML 4.0 OLEDB Provider
类型: OLE DB Provider
用法: Provider=SQLXMLOLEDB.4.0;Data Provider=providername
制造商:  Microsoft
更多相关信息 »
返回顶部
使用SQL Server Native Client提供程序
Provider=SQLXMLOLEDB.4.0;Data Provider=SQLNCLI10;Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsernameassword=myPassword;
复制代码
Context Connection(上下文连接)
类型: .NET Framework Class Library
用法:
制造商:  Microsoft
更多相关信息 »
返回顶部
上下文连接
如果您需要连接到存储过程或函数正在其上运行的同一台服务器,则在大多数情况下请使用上下文连接。这具有一些优势,例如,在同一个事务空间中运行以及不必重新验证。
此外,使用上下文连接通常会导致性能更佳和占用更少的资源。上下文连接是纯进程内连接,因此,它可以跳过网络协议和传输层“直接”与服务器联系,以发送 Transact-SQL 语句和接收结果。同时跳过验证过程。
利用上下文连接,您可以在首次被调用代码的同一上下文中执行 Transact-SQL 语句。
C#
using(SqlConnection connection = new SqlConnection("context connection=true")
{
    connection.Open();
    // Use the connection
}

VB.Net
Using connection as new SqlConnection("context connection=true"
    connection.Open()
    ' Use the connection
End Using
何时使用SQL Native Client?
全部 SqlConnection connection字符串属性列表
本文链接地址:http://www.connlist.com/sql-server-2008/

论坛徽章:
0
2 [报告]
发表于 2011-03-15 19:10 |只看该作者
急,vs2008 c#连接sql2005时出现的错误 悬赏分:30 | 解决时间:2009-11-27 12:56 | 提问者:我想不透了
在web.config中这样设置
<add providerName="System.Data.SqlClient" name="conn" connectionString="server=(local);database=lyb;uid=sa"/>
</connectionStrings>

在运行时出现这样的错误:
用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联。

我的数据库是sql sever 2005版本的、
在连接数据库时我只能用windows身份验证的方式才可以连上数据库。

我改怎么更改web.config中的内容,使之在连接数据库时是使用windows身份验证呢??


急求。。谢谢了。。

我可以奉上我全部的积分。谢谢~问题补充:

3楼、这些字符串貌似有些问题哈

字符串是:Data Source=PC-200909191815;Initial Catalog=lyb;Integrated Security=True

可是。如果复制过去就变成:Data="" Source="C-200909191815;Initial" Catalog="lyb;Integrated" Security="True"

然后就有错误说data 是为定义的属性等、、

       最佳答案 告诉你一个偷懒的方法。。。。
你在VS里用服务器资源管理器连接数据库
然后在VS里看数据库的属性。。。里面就有连接字符串
赋值出来粘贴在上面就可以了


补充。。。。你复制错了吧
Data="" Source="C-200909191815;Initial" Catalog="lyb;Integrated" Security="True"

Data="" Source  中间的等号和引号哪里来的。。。


这样<add name="你的字符串名字" connectionString="复制的字符串" providerName="System.Data.SqlClient"/>
分享给你的朋友吧:
人人网
新浪微博
开心网
MSN
QQ空间

对我有帮助
0回答时间:2009-11-27 12:43 | 我来评论  
向TA求助 回答者: fover0 | 五级采纳率:46%

擅长领域: 暂未定制

参加的活动: 暂时没有参加的活动

提问者对于答案的评价:

是滴是滴
我复制错掉了
谢谢哈

还有要谢谢其他几位~           
相关内容
2010-11-15 谁能帮忙看看vs2008连接SQL2005数据库。急、、、、、、请高手帮帮忙吧  2010-10-17 (在线等,linq,vs2008,sql2005)错误提示:The underlying provider ... 2 2008-12-24 vs2008.net 下的C#,创建了一个oledbConnection,.连接到sql2005中的数据... 10 2010-11-17 vs2008如何连接sql2005数据库 2009-9-15 vs2008 连接 sql2005出错 更多关于vs2008 c# 连接sqlserver的问题>>
查看同主题问题: 连接 sql2005 sql2005 错误
等待您来回答0回答50求:《魂断蓝桥》的原声带!cell0回答5求魂断蓝桥auld lang syne电影原声版1回答魂断蓝桥中的主题曲0回答20谁能帮我传一份:英文电影“魂断蓝桥(Waterloo Brideg)”的中英文对...更多等待您来回答的问题>>
其他回答 共3条
<add providerName="System.Data.SqlClient" name="conn" connectionString=".;database=lyb;uid=sa;password=(这里写你的SA的密码,不包括括号)"/>

这样就可以了 回答者: pengjianhang | 七级 | 2009-11-27 11:52
           Windows验证:
<connectionStrings>
    <add name="conn" connectionString="Data Source=.;Intial Catalog=lybersist Security Info=true" providerName="System.Data.SqlClient"/>
  </connectionStrings> 回答者: mbmao | 五级 | 2009-11-27 11:58
           connectionString="Data Source=192.168.0.1;Initial Catalog=lydersist Security Info=True;User ID=saassword=你的密码;"

论坛徽章:
0
3 [报告]
发表于 2011-03-16 14:15 |只看该作者
调试技巧
本文介绍如何使用 Debug 和 Trace 类。Microsoft .NET Framework 中提供了这两个类。在应用程序开发期间或部署到产品后,可以使用这两个类提供有关应用程序性能的信息。这两个类只是 .NET Framework 中所提供配置功能的一部分。

要求下面的列表概括了推荐的硬件、软件、网络结构以及所需的 Service Pack:

• Microsoft Windows 2000 或 Microsoft Windows XP

• Microsoft Visual C# .NET

本文还假定您熟悉程序调试。

方法说明

在使用 Debug 类创建一个示例一节中介绍的步骤演示了如何创建使用 Debug 类以提供有关程序执行信息的控制台应用程序。

当程序运行时,您可以使 用 Debug 类的方法来生成消息,以帮助您监视程序执行顺序、检测故障或提供性能度量信息。默认情况下,Debug 类产生的消息显示在 Visual Studio 集成开发环境 (IDE) 的“输出”窗口中。

该代码示例使用 WriteLine 方法生成后面带有行结束符的消息。当您使用此方法生成消息时,每条消息在“输出”窗口中均显示为单独的一行。

如果使用 Debug 类的 Assert 方法,那么只有在指定条件计算为 false 时,“输出”窗口才显示消息。该消息还在一个模式对话框中向用户显示。该对话框包括消息、项目名和 Debug.Assert 语句编号。该对话框还包括下列三个命令按钮:

• 终止:应用程序停止运行。

• 重试:应用程序进入调试模式。

• 忽略:应用程序继续。

用户必须先单击这些按钮中的一个,然后应用程序才可以继续。

您还可以指示从 Debug 类向“输出”窗口以外的目标进行输出。Debug 类有一个名为 Listeners 的集合,该集合包括一些 Listener 对象。

每 个 Listener 对象都监视 Debug 输出并使输出指向指定的目标。

Listener 集合中的每个 Listener 都接收 Debug 类生成的任何输出。请使用 TextWriterTraceListener 类定义 Listener 对象。可以通过 TextWriterTraceListener 类的构造函数为该类指定目标。

一些可能的输出目标包括:

• 使用 System.Console.Out 属性指定“控制台”窗口作为输出目标。

• 使用 System.IO.File.CreateText("FileName.txt" 语句指定文本文件 (.txt) 作为输出目标。

创建 TextWriterTraceListener 对象后,必须将该对象添加到 Debug.Listeners 集合才可接收调试输出。

使 用 Debug 类创建一个示例

1. 启动 Visual Studio .NET。

2. 新建一个名为 conInfo 的新 Visual C# .NET 控制台应用程序项目。将创建 Class1。

3. 在 Class1 的顶部添加以下名称空间。

using System.Diagnostics;

4. 要初始化变量以使其包含产品的相关信息,请将下面的声明语句添加到 Main 方法:

string sProdName = "Widget";
        int iUnitQty = 100;
        double dUnitCost = 1.03;

5. 将类生成的消息指定为 WriteLine 方法的第一个输入参数。按 CTRL+ALT+O 组合键以确保“输出”窗口可见。

Debug.WriteLine("Debug Information-Product Starting ";

6. 为了清晰易读,请使用 Indent 方法在“输出”窗口中缩进后面的消息:

Debug.Indent();

7. 要显示所选变量的内容,请使用 WriteLine 方法,如下所示:

Debug.WriteLine("The product name is " + sProdName);
        Debug.WriteLine("The available units on hand are" + iUnitQty.ToString());
        Debug.WriteLine("The per unit cost is " + dUnitCost.ToString());

8. 您还可以使用 WriteLine 方法显示现有对象的名称空间和类名称。例如,下面的代码在“输出”窗口中显示 System.Xml.XmlDocument 命名空间:

System.Xml.XmlDocument oxml = new System.Xml.XmlDocument();

Debug.WriteLine(oxml);

9. 要整理输出,可以包括一个类别作为 WriteLine 方法的第二个可选的输入参数。如果您指定一个类别,则“输出”窗口消息的格式为“类别:消息”。例如,以下代码的第一行在“输出”窗口中显示

“Field:The product name is Widget”:

Debug.WriteLine("The product name is " + sProdName,"Field";
        Debug.WriteLine("The units on hand are" + iUnitQty,"Field";
        Debug.WriteLine("The per unit cost is" + dUnitCost.ToString(),"Field";
        Debug.WriteLine("Total Cost is " + (iUnitQty * dUnitCost),"Calc";

10. 仅在使用 Debug 类的 WriteLineIf 方法将指定条件计算为 true 时,“输出”窗口才可以显示消息。将要计算的条件是 WriteLineIf 方法的第一个输入参数。WriteLineIf 的第二个参数是仅在第一个参数的条件计算为真时才显示的消息。

Debug.WriteLineIf(iUnitQty > 50, "This message WILL appear";

Debug.WriteLineIf(iUnitQty < 50, "This message will NOT appear";

11. 使用 Debug 类的 Assert 方法,使“输出”窗口仅在指定条件计算为 false 时才显示消息:

Debug.Assert(dUnitCost > 1, "Message will NOT appear";

Debug.Assert(dUnitCost < 1, "Message will appear since dUnitcost < 1 is false";

12. 为“控制台”窗口 (tr1) 和名为 Output.txt (tr2) 的文本文件创建 TextWriterTraceListener 对象,然后将每个对象添加到 Debug Listeners 集合中:

TextWriterTraceListener tr1 = new TextWriterTraceListener(System.Console.Out);

Debug.Listeners.Add(tr1);

TextWriterTraceListener tr2 = new TextWriterTraceListener(System.IO.File.CreateText("Output.txt"));

Debug.Listeners.Add(tr2);

13. 为了清晰易读,请使用 Unindent 方法去除 Debug 类为后续消息生成的缩进。当您将 Indent 和 Unindent 两种方法一起使用时,读取器可以将输出分成组。

Debug.Unindent();

Debug.WriteLine("Debug Information-Product Ending");

14. 为了确保每个 Listener 对象收到它的所有输出,请为 Debug 类缓冲区调用 Flush 方法:
Debug.Flush();

使用 Trace 类 您还可以使用 Trace 类生成监视应用程序执行的消息。Trace 和 Debug 类共享大多数相同的方法来生成输出,这些方法包括:

• WriteLine

• WriteLineIf

• Indent

• Unindent

• Assert

• Flush

您可以在同一应用程序中分别或同时使用 Trace 和 Debug 类。在一个“调试解决方案配置”项目中,Trace 和 Debug 两种输出均为活动状态。该项目从这两个类为 Listener 对象生成输出。但是,“发布解决方案配置”项目仅从 Trace 类生成输出。该“发布解决方案配置”项目忽略任何 Debug 类方法调用。

string myconn = "Data Source=10.0.4。1;Initial Catalog=啊;User ID=saassword=s";
            //需要执行的SQL语句
            string mysql = "select top 1 ID from a";
            int a;
            //打开数据库连接。
            SqlConnection myconnection = new SqlConnection(myconn);
            myconnection.Open();
            //创建SqlCommand 对象
            SqlCommand mycommand = new SqlCommand(mysql, myconnection);
            //通过SqlCommand的ExecuteReader()方法构造DataReader 对象。
            SqlDataReader myreader = mycommand.ExecuteReader();
            while (myreader.Read())
            {
                Console.WriteLine(myreader.GetInt32(0));
                a = myreader.GetInt32(0);
              Debug.WriteLine("debug:hello");
              Debug.WriteLine(myreader.GetInt32(0));
            }
            myreader.Close();
            myconnection.Close();   .net断点调试技巧比起java简单好多 快速方便解决问题

论坛徽章:
0
4 [报告]
发表于 2011-03-16 14:16 |只看该作者
最近因工作需要,用C#做了些应用,现对ADO.NET的数据库访问作一个小结,以供大家交流学习,迟些时候贴上自己的一些代码。
  ADO.NET的数据访问对象是以下几个:
  1、Connection对象:与数据源建立连接,连接sql server7.0 或更新版本数据库用SqlConnection,连接OLEDB数据源使用OledbConnection.
  2、Command 对象:对数据源执行SQL命令并返回结果,SQL Server7.0或更新版本用SqlCommand,OLE DB数据源使用OledbCommand.
  3、DataReader对象: 读取数据源的数据,只能将数据源的数据从头到尾依次读出,Sql server7.0或以上版本使用SqlDataReader,Oledb数据源使用OledbReader
  4、DataAdapter对象:对数据源执行操作并返回结果,在DataSet与数据源之间建立通信,将数据源中的数据写入DataSet ,或根据DataSet中的数据必定数据源。Sql server7.0或以上版本使用SqlDataAdapter,Oledb 数据源使用OledbAdpater.
  5、DataSet对象:服务器内存中的数据库
  6、DataView对象:用于显示DataSet中的数据

  从数据库中读取纪录的另一种方法是使用Dataset对象和Dataadapter对象.Dataset是ADO.NET的主要组件之一,它用于缓存从数据源检索到的数据信息。Dataadapter作为Dataset和数据源之间的桥接器,用于检索和保存数据。 Dataadapter从数据库中获取数据后使用Fill方法把数据填充到Dataset中。下面以Sqldataadapter为例说明如何使用 Dataset对象和Dataadapter对象从数据库中读取记录。执行查询的关键步骤如下:
  1、创建与数据库建立连接的Sqlconnection,传递连接字符串。
  2、构造包含查询语句的Sqldataadapter对象;
  3、若要使用查询结果填充Dataset对象,则调用命令Fill方法。


  c#利用ado.net进行数据库开发的基本步骤:
  1、创建和数据库连接的connection 对象。
  2、配置DataAdapter对象并创建和操作数据集DataSet。
  3、将数据库中的表添加到DataSet中。
  4、把数据集DataSet绑定到DataGrid上。利用DataAdapter 的Fill方法把数据填充到DataSet,最终的数据库中的数据显示在用户界面的DataGrid中。


  c#中从数据库查询记录的方法分类:
        一般使用两种方法:
        一种是通过DataReader对象直接访问;另一种则是通过数据集Dataset和Dataadapter对象访问.
  使用ADO.NET的Datareader对象能从数据库中检索数据。检索出来的数据形成一个只读只进的数据流,存储在客户端的网络缓冲区内。 Datareader对象的read方法可以前进到一下条记录。在默认情况下,每执行一次read方法只会在内存中存储一条记录系统的开销非常少。
  创建datareader之前必须先创建sqlcommand对象,然后调用该对象的executereader方法来构造sqldatareader对象,而不是直接使用构造函数。
  下面的示例程序完成的功能是访问sqlserver数据库,并使用datareader从northwind数据中读取记录,并将查询结果通过控制台输出。
  using System;
  using System.Data;
  using System.Data.SqlClient;
  namespace ReadDataFromDB{

  class Class1{

  static void Main(string[] args){
  string myconn="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind";
  //需要执行的SQL语句
  string mysql="select OrderID,CustomerID from Orders where CustomerID='CHOPS'";
  //打开数据库连接。
    SqlConnection myconnection=new SqlConnection(myconn);
  myconnection.Open();
    //创建SqlCommand 对象
  SqlCommand mycommand=new(mysql,myconnection);
    //通过SqlCommand的ExecuteReader()方法构造DataReader 对象。
  SqlDataReader myreader=mycommand.ExecuteReader();
  while(myreader.read()){
  Console.WriteLine(myreader.GetInt32(0)+","+myreader.GetString(1));

  }
  myreader.Close();
  myconnection.Close();

  }

  }

  }

VS2008下C#存储图片到sql2005数据库中 收藏

表名:table_3

表结构

字段名              字段类型                          其它

id                     int                                 自增长

i_image           image



写数据库



view plaincopy to clipboardprint?

   1. //写入数据库  
   2.   
   3.  //创建数据库连接字符串   
   4.  string strConn = @"Data Source=.;Initial Catalog=test;User ID=saassword=sa";  
   5.   
   6.  //创建SQL语句   
   7.      string sql = "insert into table_3 (i_image) values (@i_image)";  
   8.  try  
   9.  {  
  10.      //创建SqlConnection对象  
  11.      SqlConnection connection = new SqlConnection(strConn);  
  12.   
  13.      //创建SqlCommand对象  
  14.      SqlCommand command = new SqlCommand(sql, connection);  
  15.   
  16.   
  17.      Byte[] bytBLOBData = getphoto(textEdit1.Text);  
  18.   
  19.      ////创建参数对象  
  20.      SqlParameter prm = new SqlParameter("@i_image", SqlDbType.Image, bytBLOBData.Length,   
  21.          ParameterDirection.Input, true, 0, 0, null, DataRowVersion.Default, bytBLOBData);  
  22.   
  23.      command.Parameters.Add(prm);  
  24.   
  25.      //打开数据库连接   
  26.      connection.Open();  
  27.   
  28.      command.ExecuteNonQuery();  
  29.   
  30.      connection.Close();  
  31.  }  
  32.   
  33.  catch (Exception ex)  
  34.  {  
  35.      MessageBox.Show(ex.Message);  
  36.  }  
  37.  finally  
  38.  {  
  39.      MessageBox.Show("上传完成!";  
  40.  }  

//写入数据库 //创建数据库连接字符串 string strConn = @"Data Source=.;Initial Catalog=test;User ID=saassword=sa"; //创建SQL语句 string sql = "insert into table_3 (i_image) values (@i_image)"; try { //创建SqlConnection对象 SqlConnection connection = new SqlConnection(strConn); //创建SqlCommand对象 SqlCommand command = new SqlCommand(sql, connection); Byte[] bytBLOBData = getphoto(textEdit1.Text); ////创建参数对象 SqlParameter prm = new SqlParameter("@i_image", SqlDbType.Image, bytBLOBData.Length, ParameterDirection.Input, true, 0, 0, null, DataRowVersion.Default, bytBLOBData); command.Parameters.Add(prm); //打开数据库连接 connection.Open(); command.ExecuteNonQuery(); connection.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { MessageBox.Show("上传完成!"; }





view plaincopy to clipboardprint?

   1. /// <summary>  
   2. /// 定义将图片转化为二进制代码的函数getphoto()   
   3. /// </summary>  
   4. /// <param name="photopath">图片路径</param>  
   5. /// <returns>二进制代码</returns>  
   6. public Byte[] getphoto(string photopath)  
   7. {  
   8.     string str = photopath;  
   9.     FileStream file = new FileStream(str, FileMode.Open, FileAccess.Read);  
  10.     Byte[] bytBLOBData = new Byte[file.Length];  
  11.     file.Read(bytBLOBData, 0, bytBLOBData.Length);  
  12.     file.Close();  
  13.     return bytBLOBData;  
  14. }  

/// <summary> /// 定义将图片转化为二进制代码的函数getphoto() /// </summary> /// <param name="photopath">图片路径</param> /// <returns>二进制代码</returns> public Byte[] getphoto(string photopath) { string str = photopath; FileStream file = new FileStream(str, FileMode.Open, FileAccess.Read); Byte[] bytBLOBData = new Byte[file.Length]; file.Read(bytBLOBData, 0, bytBLOBData.Length); file.Close(); return bytBLOBData; }



读数据库

view plaincopy to clipboardprint?

   1. //读数据库  
   2.   
   3.  //创建数据库连接字符串  
   4.  string strConn = @"Data Source=.;Initial Catalog=test;User ID=saassword=sa";  
   5.   
   6.  //创建SQL语句  
   7.  string sql = "select id,i_image from table_3";  
   8.  try  
   9.  {  
  10.      //创建SqlConnection对象  
  11.      SqlConnection connection = new SqlConnection(strConn);  
  12.   
  13.      //打开数据库连接  
  14.      connection.Open();  
  15.   
  16.      //创建SqlCommand对象  
  17.      SqlCommand command = new SqlCommand(sql, connection);  
  18.   
  19.      //创建DataAdapter对象  
  20.      SqlDataAdapter dataAdapter = new SqlDataAdapter(command);  
  21.   
  22.      //创建DataSet对象  
  23.      DataSet dataSet = new DataSet();  
  24.   
  25.      //填充dataset  
  26.      dataAdapter.Fill(dataSet, "table_3";  
  27.   
  28.      int c = dataSet.Tables["table_3"].Rows.Count;  
  29.   
  30.        
  31.      connection.Close();  
  32.   
  33.      gridControl1.DataSource = dataSet.Tables["table_3"];  
  34.   
  35.  }  
  36.   
  37.  catch (Exception ex)  
  38.  {  
  39.   
  40.      MessageBox.Show(ex.Message);  
  41.   
  42.  }  .最简单的方法:打印输出
C#代码  收藏代码

   1. Console.WriteLine("hello,come on baby");  

  Console.WriteLine("hello,come on baby");

这句话等同于java中的
Java代码  收藏代码

   1. Syste.out.println("hello";  

Syste.out.println("hello";

2.error list view

点击视图-错误列表(view-error list),打开错误视图,这个没啥好所的,自己实践
3.控制台输出
C#代码  收藏代码

   1. Debug.WriteLine("debug:hello";//仅在调试模式下运行  
   2. Trace.WriteLine("trace:hello";//可用于发布程序  

   Debug.WriteLine("debug:hello";//仅在调试模式下运行
   Trace.WriteLine("trace:hello";//可用于发布程序

记得要使用Debug或Trace,需要引入相关类
C#代码  收藏代码

   1. using System.Diagnostics;  

using System.Diagnostics;

在IDE下查看输入,视图-输出(view-output)

在IDE下,标准工具栏中,可进行Debug/Release模式的切换

其他
C#代码  收藏代码

   1. Debug.WriteIf();  
   2. Debug.WriteLineIf();  
   3. Trace.WriteIf();  
   4. Trace.WriteLineIf();  

Debug.WriteIf();
Debug.WriteLineIf();
Trace.WriteIf();
Trace.WriteLineIf();

插入点 (类似DeBug.WriteLine语句,但不需要改变代码,为IDE自带功能)


C#代码  收藏代码

   1. 1。选中代码行  
   2. 2。右键-断点(BrackPoint)-插入跟踪点(insert TracePonit)-弹出的窗口中输入文本  
   3.     

1。选中代码行
2。右键-断点(BrackPoint)-插入跟踪点(insert TracePonit)-弹出的窗口中输入文本
  

要查看所有断点(breckPoint),可以在断点窗口中查看 主菜单中: 调试-窗口-断点 (Debug-window-breackPoint)
错误处理

try..catch....finally

好熟悉把,这个和java差不多,后面讨
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP