[url]http://hi.baidu.com/wzhxxt/item/c90be594bd9ce9da7b7f01ef[/url]
用VB老版本(VB6及以前)对SQL Server操作比较简单了,今天没事用VB.Net(2008)操作Sql Server还是费了不少劲的,也从网上看了不少相关资料,现在写下来,以供参考。
连接数据库方法:
要引用相关命名空间
上面的两条语句也可以分开写,三行就可以连到数据库了,最主要是不要把连接串写错了。
下面就是对数据的操作:
对数据的操作我们可以用SqlDataRead,也可以用DataSet。关于这二个方法的优缺点就是
Sqldataread优点:读取数据非常快。如果对返回的数据不需做大量处理的情况下,建议使用SqlDataReader,其性能要比datset好很多。缺点:直到数据读完才可close掉于数据库的连接;
Dataset是把数据读出,缓存在内存中。缺点:对内存的占用较高。如果对返回的数据需做大量的处理用Dataset比较好些可以减少对数据库的连接操作。优点:只需连接一次就可close于数据库的连接。一般情况下,读取大量数据,对返回数据不做大量处理用SqlDataReader.对返回数据大量处理用datset比较合适.对SqlDataReader和Dataset的选择取决于程序功能的实现。
我们就用DataSet的方法操作:
上面只是一个修改(修改表中第3行第4列的值),像其它的添加、删除以后再添加上吧
-----------------------------------修改---------------------------
添加新行:
下面再写点SqlDataReader的简单操作
[size=large][color=blue]SQL Server 2008连接字符串写法大全[/color][/size]
[url]http://www.cnblogs.com/tough/archive/2011/11/18/2254076.html[/url]
[b]一、.NET Framework Data Provider for SQL Server[/b]
类型:.NET Framework类库
使用:System.Data.SqlClient.SqlConnection
厂商:Microsoft
标准安全连接
Data Source = myServerAddress;Initial Catalog = myDataBase;User Id = myUsername;Password = myPassword;
使用服务器名\实例名作为连接指定SQL Server实例的数据源。如果你使用的是SQL Server 2008 Express版,实例名为SQLEXPRESS。
可替代的标准安全连接
Server = myServerAddress;Database = myDataBase;User ID = myUsername;Password = myPassword;Trusted_Connection = False;
这条连接字符串跟上一条效果一样。把这条写出来只是想说,其实很多连接字符串的关键字有多种写法。
信任连接
Data Source = myServerAddress;Initial Catalog = myDataBase;Integrated Security = SSPI;
可替代的信任连接
Server = myServerAddress;Database = myDataBase;Trusted_Connection = True;
连接Windows CE设备的信任连接
通常一台Windows CE设备在一个域里是不能被认证和登录的。为了让一台CE设备使用SSPI或信任连接和认证,可以使用下面的连接字符串:
Data Source = myServerAddress;Initial Catalog = myDataBase;Integrated Security = SSPI;User ID = myDomain
\myUsername;Password = myPassword;
说明一下,这条语句只能在CE设备上用。
使用IP地址的连接
Data Source = 190.168.1.100,1433;Network Library = DBMSSOCN;Initial Catalog = myDataBase;User
ID = myUsername;Password = myPassword;
这条语句用TCP/IP地址替代了命名管道。在Data Source字段最后的是使用的端口。SQL Server默认使用的端口是1433。
开启MARS功能(multiple active result sets)
Server = myServerAddress;Database = myDataBase;Trusted_Connection = True; MultipleActiveResultSets = true;
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;
在本地SQL Server Express实例上使用用户实例
用户实例这个功能会在连接的过程中,新建一个SQL Server实例。该功能只有在本地SQL Server实例上,且连接时使用通过本地命名通道的Windows认证。这样做的好处是,可以给一个在本地计算机上只有相当有限的管理员权限的用户,新建一个拥有全部权限的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'
注:这两条命令只在SQL Server Express中有效。
数据库镜像
如果你用ADO.NET或者SQL Native Client去连接一个数据库镜像,当这个数据库镜像进行故障切换的时候,你的应用程序可以利用驱动器的特性去自动重定向连接。当然,你必须在连接字段里指定初始的主服务器和数据库,以及用于故障切换的镜像服务器。
Data Source = myServerAddress;Failover Partner = myMirrorServerAddress;Initial Catalog = myDataBase;Integrated
Security = True;
上面的例子只是介绍了一下如何使用数据库镜像,你可以将Failover Partner字段跟其他连接字符串功能组合使用。
异步处理
Server = myServerAddress;Database = myDataBase;Integrated Security = True;Asynchronous Processing = True;
[b]二、SQL Server Native Client 10.0 OLE DB Provider[/b]
类型:OLE DB Provider
使用:Provider=SQLNCLI10
厂商:Microsoft
标准安全连接
Provider = SQLNCLI10;Server = myServerAddress;Database = myDataBase;Uid = myUsername; Pwd = myPassword;
信任连接
Provider = SQLNCLI10;Server = myServerAddress;Database = myDataBase; Trusted_Connection = yes;
"Integrated Security=SSPI" 和 "Trusted_Connection=yes"是等价的。
连接一个SQL Server实例
Provider = SQLNCLI10;Server = myServerName\theInstanceName;Database = myDataBase; Trusted_Connection = yes;
用户名、密码提示
oConn.Properties("Prompt") = adPromptAlways
oConn.Open "Provider = SQLNCLI10;Server = myServerAddress;DataBase = myDataBase;
开启MARS功能 (multiple active result sets)
Provider = SQLNCLI10;Server = myServerAddress;Database = myDataBase; Trusted_Connection = yes;MARS Connection = True;
加密模式
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;
在连接到SQL Server Express实例时,从数据目录下附加一个数据库文件
Provider = SQLNCLI10;Server = .\SQLExpress;AttachDbFilename = |DataDirectory|mydbfile.mdf;
Database = dbname;Trusted_Connection = Yes;
数据库镜像
Provider = SQLNCLI10;Data Source = myServerAddress;Failover Partner = myMirrorServerAddress;Initial
Catalog = myDataBase;Integrated Security = True;
[b]三、.NET Framework Data Provider for OLE DB[/b]
类型:.NET Framework Wrapper Class Library
使用:System.Data.OleDb.OleDbConnection
厂商:Microsoft
桥接到SQL Native Client OLE DB
Provider = SQLNCLI10;Server = myServerAddress;Database = myDataBase;Uid = myUsername; Pwd = myPassword;
[b]四、SQL Server Native Client 10.0 ODBC Driver[/b]
类型:ODBC Driver
使用:Driver={SQL Server Native Client 10.0}
厂商:Microsoft
标准安全连接
Driver = {SQL Server Native Client 10.0};Server = myServerAddress;Database = myDataBase;Uid = myUsername;Pwd = myPassword;
信任连接
Driver = {SQL Server Native Client 10.0};Server = myServerAddress;Database = myDataBase;Trusted_Connection = yes;
连接一个SQL Server实例
Driver = {SQL Server Native Client 10.0};Server = myServerName\theInstanceName;
Database = myDataBase;Trusted_Connection = yes;
用户名、密码提示
oConn.Properties("Prompt") = adPromptAlways
Driver = {SQL Server Native Client 10.0};Server = myServerAddress;Database = myDataBase;
开启MARS功能 (multiple active result sets)
Driver = {SQL Server Native Client 10.0};Server = myServerAddress;Database = myDataBase;Trusted_Connection = yes;
MARS_Connection = yes;
加密模式
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;
在连接到SQL Server Express实例时,从数据目录下附加一个数据库文件
Driver={SQL Server Native Client 10.0};Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf;
Database=dbname;Trusted_Connection=Yes;
数据库镜像
Driver = {SQL Server Native Client
10.0};Server = myServerAddress;Failover_Partner = myMirrorServerAddress;Database = myDataBase; Trusted_Connection = yes;
[b]五、.NET Framework Data Provider for ODBC[/b]
类型:.NET Framework Wrapper Class Library
使用:System.Data.Odbc.OdbcConnection
厂商:Microsoft
桥接到SQL Native Client 10.0 ODBC Driver
下面的语句只是一条例子,不同厂商的ODBC驱动不同。
Driver={SQL Server Native Client 10.0};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
[b]六、SQLXML 4.0 OLEDB Provider[/b]
类型:OLE DB Provider
使用:Provider=SQLXMLOLEDB.4.0;Data Provider=providername
厂商:Microsoft
Provider=SQLXMLOLEDB.4.0;Data Provider=SQLNCLI10;Data Source=myServerAddress;Initial Catalog=myDataBase;User
Id=myUsername;Password=myPassword;
七、Context Connection
类型:.NET Framework Class Library
使用:
厂商:Microsoft
通过当前CLR里的存储过程/函数来连接到“自身”。上下文连接可以让你,在你的代码第一次被调用的地方所在的上下文(连接)里,执行T-SQL语句。
用VB老版本(VB6及以前)对SQL Server操作比较简单了,今天没事用VB.Net(2008)操作Sql Server还是费了不少劲的,也从网上看了不少相关资料,现在写下来,以供参考。
连接数据库方法:
要引用相关命名空间
Imports System.Data
Imports System.Data.SqlClient
Dim cn As New SqlClient.SqlConnection("Server=PC-201301191136;DataBase=tic;integrated security=true;uid=sa;pwd=305110") '连接sql server
Dim strcom As New SqlCommand("select * from personnel", cn) '命令集
cn.Open() '执行连接
上面的两条语句也可以分开写,三行就可以连到数据库了,最主要是不要把连接串写错了。
下面就是对数据的操作:
对数据的操作我们可以用SqlDataRead,也可以用DataSet。关于这二个方法的优缺点就是
Sqldataread优点:读取数据非常快。如果对返回的数据不需做大量处理的情况下,建议使用SqlDataReader,其性能要比datset好很多。缺点:直到数据读完才可close掉于数据库的连接;
Dataset是把数据读出,缓存在内存中。缺点:对内存的占用较高。如果对返回的数据需做大量的处理用Dataset比较好些可以减少对数据库的连接操作。优点:只需连接一次就可close于数据库的连接。一般情况下,读取大量数据,对返回数据不做大量处理用SqlDataReader.对返回数据大量处理用datset比较合适.对SqlDataReader和Dataset的选择取决于程序功能的实现。
我们就用DataSet的方法操作:
Dim hh As SqlDataAdapter = New SqlDataAdapter(strcom)
Dim ds As DataSet = New DataSet '定义DataSet并实例化
hh.Fill(ds, "my")
'把表my关连到控件DataGridView1上,以便观察变化
DataGridView1.DataMember = "my"
DataGridView1.DataSource = ds
'DataSet是一个集合,是可以放多张表的。DataSet就像数据库,DataTable就像表
Dim dt As DataTable
Dim dr As DataRow = Nothing
dt = ds.Tables("my")
dr = dt.Rows(3)
dr.BeginEdit() '开始编辑
dr(3) = "lllll" '赋值
dr.EndEdit() ' 结果编辑
dt.AcceptChanges() '表接受变更,这个命令是必须的,如果没有这条命令,下面Update命令会出错,提示“当传递具有已修改行的DataRow集合时,更新要求有效的UpdateCommand”
hh.Update(dt) '更新表
dt.Dispose() '释放资源
hh.Dispose()
cn.Close() '关闭连接
上面只是一个修改(修改表中第3行第4列的值),像其它的添加、删除以后再添加上吧
-----------------------------------修改---------------------------
添加新行:
dr=dt.newrow()
dr(1)=...
dr(2)=...
dr(3)=...
.
.
.
dr(n)=...
dt.rows.add(dr)
dt.acceptchanges()
hh.update(dt)
---------------
-------------------------------------------------------
下面再写点SqlDataReader的简单操作
Dim sqlread As SqlDataReader = strcom.ExecuteReader
While sqlread.Read
'-----------这里写代码
ListBox1.Items.Add(sqlread("name"))
End While
sqlread.Close()
#SqlDataReader #SQL #DataS
[size=large][color=blue]SQL Server 2008连接字符串写法大全[/color][/size]
[url]http://www.cnblogs.com/tough/archive/2011/11/18/2254076.html[/url]
[b]一、.NET Framework Data Provider for SQL Server[/b]
类型:.NET Framework类库
使用:System.Data.SqlClient.SqlConnection
厂商:Microsoft
标准安全连接
Data Source = myServerAddress;Initial Catalog = myDataBase;User Id = myUsername;Password = myPassword;
使用服务器名\实例名作为连接指定SQL Server实例的数据源。如果你使用的是SQL Server 2008 Express版,实例名为SQLEXPRESS。
可替代的标准安全连接
Server = myServerAddress;Database = myDataBase;User ID = myUsername;Password = myPassword;Trusted_Connection = False;
这条连接字符串跟上一条效果一样。把这条写出来只是想说,其实很多连接字符串的关键字有多种写法。
信任连接
Data Source = myServerAddress;Initial Catalog = myDataBase;Integrated Security = SSPI;
可替代的信任连接
Server = myServerAddress;Database = myDataBase;Trusted_Connection = True;
连接Windows CE设备的信任连接
通常一台Windows CE设备在一个域里是不能被认证和登录的。为了让一台CE设备使用SSPI或信任连接和认证,可以使用下面的连接字符串:
Data Source = myServerAddress;Initial Catalog = myDataBase;Integrated Security = SSPI;User ID = myDomain
\myUsername;Password = myPassword;
说明一下,这条语句只能在CE设备上用。
使用IP地址的连接
Data Source = 190.168.1.100,1433;Network Library = DBMSSOCN;Initial Catalog = myDataBase;User
ID = myUsername;Password = myPassword;
这条语句用TCP/IP地址替代了命名管道。在Data Source字段最后的是使用的端口。SQL Server默认使用的端口是1433。
开启MARS功能(multiple active result sets)
Server = myServerAddress;Database = myDataBase;Trusted_Connection = True; MultipleActiveResultSets = true;
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;
在本地SQL Server Express实例上使用用户实例
用户实例这个功能会在连接的过程中,新建一个SQL Server实例。该功能只有在本地SQL Server实例上,且连接时使用通过本地命名通道的Windows认证。这样做的好处是,可以给一个在本地计算机上只有相当有限的管理员权限的用户,新建一个拥有全部权限的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'
注:这两条命令只在SQL Server Express中有效。
数据库镜像
如果你用ADO.NET或者SQL Native Client去连接一个数据库镜像,当这个数据库镜像进行故障切换的时候,你的应用程序可以利用驱动器的特性去自动重定向连接。当然,你必须在连接字段里指定初始的主服务器和数据库,以及用于故障切换的镜像服务器。
Data Source = myServerAddress;Failover Partner = myMirrorServerAddress;Initial Catalog = myDataBase;Integrated
Security = True;
上面的例子只是介绍了一下如何使用数据库镜像,你可以将Failover Partner字段跟其他连接字符串功能组合使用。
异步处理
Server = myServerAddress;Database = myDataBase;Integrated Security = True;Asynchronous Processing = True;
[b]二、SQL Server Native Client 10.0 OLE DB Provider[/b]
类型:OLE DB Provider
使用:Provider=SQLNCLI10
厂商:Microsoft
标准安全连接
Provider = SQLNCLI10;Server = myServerAddress;Database = myDataBase;Uid = myUsername; Pwd = myPassword;
信任连接
Provider = SQLNCLI10;Server = myServerAddress;Database = myDataBase; Trusted_Connection = yes;
"Integrated Security=SSPI" 和 "Trusted_Connection=yes"是等价的。
连接一个SQL Server实例
Provider = SQLNCLI10;Server = myServerName\theInstanceName;Database = myDataBase; Trusted_Connection = yes;
用户名、密码提示
oConn.Properties("Prompt") = adPromptAlways
oConn.Open "Provider = SQLNCLI10;Server = myServerAddress;DataBase = myDataBase;
开启MARS功能 (multiple active result sets)
Provider = SQLNCLI10;Server = myServerAddress;Database = myDataBase; Trusted_Connection = yes;MARS Connection = True;
加密模式
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;
在连接到SQL Server Express实例时,从数据目录下附加一个数据库文件
Provider = SQLNCLI10;Server = .\SQLExpress;AttachDbFilename = |DataDirectory|mydbfile.mdf;
Database = dbname;Trusted_Connection = Yes;
数据库镜像
Provider = SQLNCLI10;Data Source = myServerAddress;Failover Partner = myMirrorServerAddress;Initial
Catalog = myDataBase;Integrated Security = True;
[b]三、.NET Framework Data Provider for OLE DB[/b]
类型:.NET Framework Wrapper Class Library
使用:System.Data.OleDb.OleDbConnection
厂商:Microsoft
桥接到SQL Native Client OLE DB
Provider = SQLNCLI10;Server = myServerAddress;Database = myDataBase;Uid = myUsername; Pwd = myPassword;
[b]四、SQL Server Native Client 10.0 ODBC Driver[/b]
类型:ODBC Driver
使用:Driver={SQL Server Native Client 10.0}
厂商:Microsoft
标准安全连接
Driver = {SQL Server Native Client 10.0};Server = myServerAddress;Database = myDataBase;Uid = myUsername;Pwd = myPassword;
信任连接
Driver = {SQL Server Native Client 10.0};Server = myServerAddress;Database = myDataBase;Trusted_Connection = yes;
连接一个SQL Server实例
Driver = {SQL Server Native Client 10.0};Server = myServerName\theInstanceName;
Database = myDataBase;Trusted_Connection = yes;
用户名、密码提示
oConn.Properties("Prompt") = adPromptAlways
Driver = {SQL Server Native Client 10.0};Server = myServerAddress;Database = myDataBase;
开启MARS功能 (multiple active result sets)
Driver = {SQL Server Native Client 10.0};Server = myServerAddress;Database = myDataBase;Trusted_Connection = yes;
MARS_Connection = yes;
加密模式
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;
在连接到SQL Server Express实例时,从数据目录下附加一个数据库文件
Driver={SQL Server Native Client 10.0};Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf;
Database=dbname;Trusted_Connection=Yes;
数据库镜像
Driver = {SQL Server Native Client
10.0};Server = myServerAddress;Failover_Partner = myMirrorServerAddress;Database = myDataBase; Trusted_Connection = yes;
[b]五、.NET Framework Data Provider for ODBC[/b]
类型:.NET Framework Wrapper Class Library
使用:System.Data.Odbc.OdbcConnection
厂商:Microsoft
桥接到SQL Native Client 10.0 ODBC Driver
下面的语句只是一条例子,不同厂商的ODBC驱动不同。
Driver={SQL Server Native Client 10.0};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
[b]六、SQLXML 4.0 OLEDB Provider[/b]
类型:OLE DB Provider
使用:Provider=SQLXMLOLEDB.4.0;Data Provider=providername
厂商:Microsoft
Provider=SQLXMLOLEDB.4.0;Data Provider=SQLNCLI10;Data Source=myServerAddress;Initial Catalog=myDataBase;User
Id=myUsername;Password=myPassword;
七、Context Connection
类型:.NET Framework Class Library
使用:
厂商:Microsoft
通过当前CLR里的存储过程/函数来连接到“自身”。上下文连接可以让你,在你的代码第一次被调用的地方所在的上下文(连接)里,执行T-SQL语句。
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