网站首页 > 文章中心 > 其它

vb.net连接池

作者:小编 更新时间:2023-08-18 13:38:13 浏览量:311人看过

用VB.Net访问SQLServer 数据库访问完之后,关闭连接并释放,但SQL Server的sysprocesses表中还有连接记录

你是关闭本地的,又没有立即关闭远程Server上的,他是个pip协议对等试的连接,打个比方,两个电脑要共享一个文件夹,不能说直接用一台电脑配好就可以看吧,要设置共享协议.

这边释放关闭连接不代表就更新了另一台电脑,他还是在判断有无连接响应,这就是为什么连接多了会形成"死锁".

Java与ASP.NET有什么区别

可以这样说就是 企业级开发 针对电脑的开发 针对手机的开发

ASP.net 是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术 ASP.NET一般分为两种开发语言,VB.NET和C#,C#相对比较常用,因为是.NET独有的语言,VB.NET则为以前VB程序设计,适合于以前VB程序员,

java语言 通过四种方式连接数据库

JDBC-ODBC桥 这种类型的驱动把所有JDBC的调用传递给ODBC,再让后者调用数据库本地驱动代码(也就是数据库厂商提供的数据库操作二进制代码库,例如Oracle中的oci.dll).

asp.net 使用连接字符串关键字控制连接池SqlConnection 对象的 ConnectionString 属性支持连接字符串键/值对,这些键/值对可用于调整连接池逻辑的行为

另外你所说的java使用Oracle asp.net使用SQL Server

Oracle跨平台,SQL Server只能运行在Windows上,而Windows能够安装的硬件是有限的,如Sun的Sparc服务器不能安装Windows,一些大型机、小型机也只能装UNIX,在这些高端机器上就只能跑Oracle了,这注定了Oracle就是高端数据库,而SQL Server呢,中低端.

oracle中断连接的时候程序会卡很久大概15秒,怎么减短这个时间?

数据库编程首先需要检查数据库事务是否正常建立,建立后才能进行数据库操作.需要断开连接时不要进行查询和更新操作,你需要在程序中进行健壮性处理,判断当前状态,这样就不会出现异常情况了.

如果不是程序的问题,还总自动断开,那就检查服务器,不要用程序处理异常,这样会出问题的

asp.net中怎么把有限的数据库访问改为所有用户都能访问?

SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合.每一个属性/值对都由分号隔开.

同样,连接字符串必须包含SQL Server实例名称:

Data Source=ServerName;

使用本地的SQL Server(localhost),如果想要使用远程服务器运行,应该在示例对象中把正确的服务器赋给Data Source 属性.此外,还必须指定所支持的两种身份验证方法(即Windows身份验证和SQL Server身份验证)中的其中一种.Windows身份验证使用Windows登录用户身份连接数据库,而SQL身份验证要求显式地指定SQL Server用户ID和密码.要想使用Windows身份验证,必须在连接字符串中包括 Integrated Security 属性:

Data Source=ServerName;Integrated Security=True;

Data Source=ServerName;User ID=donaldx;Password=unbreakable

默认情况下,SQL Server .NET Data Provider连接指定用户的默认数据库,当在数据库中创建用户时,可以设置用户的默认数据库.此外,也可以在任意时间更改用户的默认数据库.例如,系统管理员的默认数据库是master.如果想要连接不同的数据库,应该指定数据库的名称:

Data Source=ServerName;Integrated Security=SSPI;Initial Catalog=Northwind

每一种身份验证都有它的优点和缺点.Windows身份验证使用单一的用户信息库源,所以呢,不需要为数据库访问去分别配置用户.连接字符串不包含用户ID和密码,所以呢消除了把用户ID和密码暴露给未授权的用户的危险.可以在Active Directory中管理用户和他们的角色,而不必在SQL Server中显式地配置他们的属性.

Windows身份验证的缺点是,它要求客户通过Windows的安全子系统支持的安全通道去连接SQL Server.如果应用种序需要通过不安全的网络(例如Internet)连接SQL Server,Windows身份验证将不工作.此外,这种身份验证方法也部分地把管理数据库访问控制的责任从DBA身上转移到了系统管理员身上,这在确定的环境中也许是一个问题.

一般而言,在设计通用的应用程序时,为了使用Windows身份验证,将会对一些方面进行加强.大多数公司的数据库都驻留在比较健壮的Windows服务器操作系统上,那些操作系统都支持Windows身份验证.数据访问层和数据表示层的分离也促进了把数据访问代码封装在中间层组件思想的应用,中间层组件通常运行在具有数据库服务器的内部网络中.当这样设计时,就不需要通过不安全通道建立数据库连接.除此之外,Web服务也使直接连接不同域中数据库的需要大减少.

数据库的连接性已经发展成为应用程序开发的一个标准方面.数据库连接字符串现在已经成为每个项目的标准必备条件.我发现自己为了找到所需要的句法,经常要从另外一个应用程序中复制连接字符串或者进行一次搜索.这个在与SQL Server交互操作时更是如此,因为它有太多的连接字符串选项.现在就让我们来研究一下连接字符串的众多方面.

连接字符串

在对象实例化或者建立期间,数据库连接字符串通过属性或方法被传递到必要的对象.连接字符串的格式是一个以分号为界,划分键/值参数对的列表.列表A中包括了一个C#中的例子,说明了怎样用创建SqlConnection对象的方法连接到SQL Server(实际的连接字符串是通过对象的ConnectionString属性分配的).列表B中包括的是VB.NET的版本.

列表A

string cString = "Data Source=server;Initial Catalog=db;User ID=test;Password=test;";

SqlConnectionconn = new SqlConnection();

conn.ConnectionString = cString;

conn.Open();

列表B

Dim cString As String

cString = "Data Source=server;Initial Catalog=db;User ID=test;Password=test;"

Dim conn As SqlConnection = New SqlConnection()

conn.ConnectionString = cString

conn.Open()

连接字符串会指定数据库服务器和数据库,以及访问数据库必需的用户名和密码.但是这种格式并不是对所有数据库交互都适用,它的确有许多可用的选项,其中很多选项都有同义词.

和Data Source(数据源)、Initial Catalog(初始编目)、User ID(用户ID)、和Password(密码)等元素一起,下面这些选项都是可用的:

Application Name(应用程序名称):应用程序的名称.如果没有被指定的话,它的值为.NET SqlClient Data Provider(数据提供程序).

AttachDBFilename/extended properties(扩展属性)/Initial File Name(初始文件名):可连接数据库的主要文件的名称,包括完整路径名称.数据库名称必须用关键字数据库指定.

Connection Lifetime(连接生存时间):当一个连接被返回到连接池时,它的创建时间会与当前时间进行对比.如果这个时间跨度超过了连接的有效期的话,连接就被取消.其缺省值为0.

Connection Reset(连接重置):表示一个连接在从连接池中被移除时是否被重置.一个伪的有效在获得一个连接的时候就无需再进行一个额外的服务器来回运作,其缺省值为真.

Current Language(当前语言):SQL Server语言记录的名称.

Data Source(数据源)/Server(服务器)/Address(地址)/Addr(地址)/Network Address(网络地址):SQL Server实例的名称或网络地址.

Encrypt(加密):当值为真时,如果服务器安装了授权证书,SQL Server就会对所有在客户和服务器之间传输的数据使用SSL加密.被接受的值有true(真)、false(伪)、yes(是)和no(否).

Enlist(登记):表示连接池程序是否会自动登记创建线程的当前事务语境中的连接,其缺省值为真.

Database(数据库)/Initial Catalog(初始编目):数据库的名称.

Integrated Security(集成安全)/Trusted Connection(受信连接):表示Windows认证是否被用来连接数据库.它可以被设置成真、伪或者是和真对等的sspi,其缺省值为伪.

Max Pool Size(连接池的最大容量):连接池允许的连接数的最大值,其缺省值为100.

Min Pool Size(连接池的最小容量):连接池允许的连接数的最小值,其缺省值为0.

Network Library(网络库)/Net(网络):用来建立到一个SQL Server实例的连接的网络库.支持的值包括: dbnmpntw (Named Pipes)、dbmsrpcn (Multiprotocol/RPC)、dbmsvinn(Banyan Vines)、dbmsspxn (IPX/SPX)和dbmssocn (TCP/IP).协议的动态链接库必须被安装到适当的连接,其缺省值为TCP/IP.

Password(密码)/Pwd:与帐户名相对应的密码.

Persist Security Info(保持安全信息):用来确定一旦连接建立了以后安全信息是否可用.如果值为真的话,说明像用户名和密码这样对安全性比较敏感的数据可用,而如果值为伪则不可用.重置连接字符串将重新配置包括密码在内的所有连接字符串的值.其缺省值为伪.

Pooling(池):确定是否使用连接池.如果值为真的话,连接就要从适当的连接池中获得,或者,如果需要的话,连接将被创建,然后被加入合适的连接池中.其缺省值为真.

User ID(用户ID):用来登陆数据库的帐户名.

Workstation ID(工作站ID):连接到SQL Server的工作站的名称.其缺省值为本地计算机的名称.

解决SQL Server 连接时的一些基本问题后的若干初浅心得

①.、SQL Server的连接方式

以本地服务器(LocalHost),数据库(Northwind)为例,可以有以下一些连接方式

SqlConnection conn=new SqlConnection( "Server=LocalHost;Integrated Security=SSPI;Database=Northwind");

SqlConnection conn = new SqlConnection("Data Source=LocalHost;Integrated Security=SSPI;Initial Catalog=Northwind;");

SqlConnection myConn = new SqlConnection("Persist Security Info=False;Integrated Security=SSPI;Database=northwind;Server=LocalHost");

心得:

a.Server和Database,Data Source和Initial Catalog配对使用的,可以互相替换(见笑)

b.Integrated Security默认值是False,此时需要提供Uid和Pwd,即将以Sql Server 用户身份登陆数据库;如果设置为True,Yes 或 SSPI,这不能出现Uid和Pwd,将以Windows用户省份登陆数据库.强烈推荐用后一种形式,安全性更高.

c.Integrated Security和Persist Security Info同时出现,后者设置为False,可保证信息安全.

更多字符串连接说明请看MSDN:

连接字符串的书写应该熟练后应该没有什么问题,我是再看别人的程序,说实话有些东东还真不清楚.但连接不上的问题出现后,得解决呀.所以必须要弄懂这些关键字的意义,修改后再测试.

问题第一段:采用连接字符串

错误:

用户"sa"登陆失败,没有可信任的Sql Server连接

查资料后找到解决方法:

原因:Sql Server的验证方式需要设置为Sql Server验证和Windows集成验证的混合方式,如果仅设置为后一种方式,就会出像上述问题

问题第二段:采用连接字符串

用户"computername\IWAM_servername"登陆失败

原因:SQL Server的登陆用户中不包括IWAM_servername

最好使用SSPI的集成安全方式连接数据库,而sa用户的方式连接会存在安全隐患,我认为主要是因为在安装SQL Server时,经常会为了访问的方便设置sa的密码为空,黑客一旦让sa成为管理员,就可以获得对系统的所有访问权限.所以为了数据库的安全,可以设置 SQL server的访问用户只能经过windows集成验证,设置sa的安全密码,加强数据库的安全性.当然设置为windows集成验证后,数据库的性能和访问的灵活性势必会受到影响,管理员可以针对每一个数据库设置不同的验证方式,而不必对SQL server设置成统一的方式.

以上就是土嘎嘎小编为大家整理的vb.net连接池相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章