connectionstringsql
1. 将excel导入到sql server时出现ConnectionString 属性未初始化
数据源选择 Excel
目标选择 Microsoft OLE DB Provider for MS SQL.
2. C# SqlConnection 在ConnectionString设置连接超时无效.
SqlCommand cmd = new SqlCommand();
cmd.CommandTimeout = 15;
你用这种方法试一试
3. 如何正确使用SqlConnection
以前曾见过有人这样写代码:
public class Service1 : IService1
{
private SqlConnection conn = new SqlConnection();
public void Method1()
{
//do something with conn;
}
public void Method2()
{
//do something with conn;
}
public void Method3()
{
//do something with conn;
}
public void Method4()
{
//do something with conn;
}
}
在服务类中,新建一个全局的conn对象,然后使用conn对象来操作数据库。
当然,还有一些不同的版本,比如:
private SqlConnection conn = new SqlConnection();
private static SqlConnection sconn = new SqlConnection();
private SqlConnection Conn
{
get { return new SqlConnection(); }
}
如果有人问你哪种方式比较好,你会怎么回答?
首先验证下在多线程环境下使用一个Connection的方式:
创建控制台程序:
Main代码如下:
public static void Main()
{
string connectionString = @"Data Source=.\SQLEXPRESS;
AttachDbFilename=""E:\DB\NORTHWND.mdf"";
Integrated Security=True;
Connect Timeout=30;User Instance=True";
string connectionStringNoPooling = connectionString + " ;Pooling='false' ";
SqlConnection conn = new SqlConnection(connectionString);
new Thread(() => { ExecuteCommand(conn); }) { Name = "t1" }.Start();
new Thread(() => { ExecuteCommand(conn); }) { Name = "t2" }.Start();
}
public static void ExecuteCommand(SqlConnection conn)
{
Console.WriteLine("Thread:{0},{1}", Thread.CurrentThread.Name, DateTime.Now);
conn.Open();
SqlCommand command = new SqlCommand("select * from customers", conn);
command.ExecuteNonQuery();
command.Dispose();
Thread.Sleep(5000); //模拟耗时的查询
conn.Close();
Console.WriteLine("Thread:{0} 执行完毕,{1}", Thread.CurrentThread.Name, DateTime.Now);
}
代码很简单,模拟两个线程同时执行ExecuteCommand.方法。结果如下:
可以知道在多线程环境下使用一个Connection来执行Sql语句是不安全的,
修改Main函数如下:将一个Connection,改为多个Connection
public static void Main()
{
string connectionString = @"Data Source=.\SQLEXPRESS;
AttachDbFilename=""E:\DB\NORTHWND.mdf"";
Integrated Security=True;
Connect Timeout=30;User Instance=True";
string connectionStringNoPooling = connectionString + " ;Pooling='false' ";
//SqlConnection conn = new SqlConnection(connectionString);
//new Thread(() => { ExecuteCommand(conn); }) { Name = "t1" }.Start();
//new Thread(() => { ExecuteCommand(conn); }) { Name = "t2" }.Start();
SqlConnection conn1 = new SqlConnection(connectionString);
SqlConnection conn2 = new SqlConnection(connectionString);
new Thread(() => { ExecuteCommand(conn1); }) { Name = "t1" }.Start();
new Thread(() => { ExecuteCommand(conn2); }) { Name = "t2" }.Start();
Console.ReadLine();
}
运行结果如下:
既然多个Connection比一个Connection要好,
为什么还是有人使用上面的那种写法来创建Connection呢?
我认为他们可能会认为创建多个Connection比较耗时,而且多个Connection会占用内存,影响性能等等。。
在这一点上可以使用测试数据来说明:
测试数据来自:Connection-Pooling vs. Reusing one connection
Run #
NCP
CP
OC
1
4073
374
237
2
4032
341
298
3
3985
353
242
4
4085
348
269
5
3964
369
256
6
4203
330
207
7
4055
341
359
8
4071
357
286
9
3968
363
356
10
4023
349
359
AVG
4046
353
287
Run #:1代表1000次查询,2代表2000次查询
NCP :Not Connection Pool ,未启用数据库连接池
CP :Connection Pool,启用数据库连接池
OC :One Connection,一个连接对象
从图表可以发现启用了连接池的方式并不比重用一个连接慢多少。
但是从稳定性,程序的健壮性来说,CP的方式明显的好于OC。
所以下次实现服务,或者是查询的时候完全可以使用
public SqlConnection Connection
{
get
{
return new SqlConnection(@"...");
}
}
而不要
private SqlConnection conn = new SqlConnection(connectionString);
4. sqlConnection控件ConnectionString新建连接出错
你之前配置的数据库连接是正确的吗?重点检查一下你的数据库服务是否正常,还有你的连接字符串,用户名和密码是否正确
5. 连接mssql的connectionString怎么写
server=你的服务器IP;DataBase=数据库名;uid=用户名;pwd=数据库密码;Max Pool Size = 1024
6. SQL2014 connectionstring属性尚未初始化怎么解决
SQL2014 connectionstring属性尚未初始化是设置错误造成的,解决方法为:
1、老版本(SQL200)中,登录后,在Master数据库下面,找到“存储过程”。
7. ASP.NET中的一段程序连接Sql ConnectionString 的问题
web.config中的数据库连接字符串:
<connectionStrings>
<add name="eStoreConnectionString" connectionString="Data Source=数据源;Initial Catalog=数据库;Persist Security Info=True;User ID=sa;Password=sa" providerName="System.Data.SqlClient"/>
</connectionStrings>
8. C#中 SqlConnection ConnectionString 中密码既有 单引号 又有双引号 并且有分号 连接字符串怎么写呢
var conn=@"pwd='{0}'";
conn=string.format(conn,pwd.replace("'","''");
密码包括在单引号中,再将密码中的单引号替换成两个单引号。
9. asp与SQL连接。(看不懂网上的ConnectionString.图上的写法提示无法连接,不知道
.Net连接字符串(ConnectionString)
在连接到数据库或者数据库文件的时候,程序需要调用AOD或者ADO.NET中的封装的数据提供程序,而连接字符串中包含了这些数据提供程序所需要的各种必要的信息。连接字符中包含的典型信息包括数据库的名称,服务器的位置和用户身份;他还可以指定其他更多的可操作信息,诸如连接超时和连接池设置。连接字符串使用一系列的键值对来存储信息,每个键值对用分号隔开。
连接字符串的关键字
ApplicationName:客户端应用程序的名称。
Aync:启动异步操作支持。
AttachDBFileName或Initial FileName:一个可连接的数据库文件使用的完整路径名。
Connection Timeout:等待连接发生的秒数。
Current Language:SQL Server语言的名称。
Database 或 Initial Catalog:要连接的数据库的名称。
Encrypt:指明是否应当对客户和服务器之间发送所有数据使用安全套接字层(SSL)加密。需要在服务器上安装一个证书。默认为False。
Failover Partner:出错时要访问的伙伴服务器名称。
Integrated Security 或 Trusted_Connection:指明当前的Windows账户凭据是否用于身份验证。
MultipleActiveResultSets:表示一个应用程序是否可以维护多个活动结果集。
Network Library 或 Net:指明用来建立于SQL Server 的链接的网络库。默认为dbmssocn,他是基于TCP/IP的。
Packet Size:指明数据包交换的字节数。默认为8192.
PassWord 或 pwd:正在登陆的账户的密码。
Persist Security Info:指明托管提供程序是否在作为连接字符串返回的字符串中包括密码信息。默认为False。
Server 或 DataSource:要连接的SQL Server 实例的名称或网址。
User ID 或 uid:正在登陆的账户的用户名。
Workstation ID:连接到SQL Server 的机器的名称。
连接字符串的一些规定
1.不带引号和没有意义的空格都将被忽略
2.空格将会影响连接池机制,池中的字符串应该有相同的格式
3.如果分号(;)是键值对值的一部分应该用引号引用
4.如果值是以单引号开始的,则使用双引号,反之,如果值是以双引号开始,则使用单引号
5.换码序列(escape sequences)是不被支持的
6.值的类型无关紧要
7.字符串中的名称是不区分大小写的
8.如果一个键值对出现多次,则字符串采用最后出现的键值对的值
9.如果键中包含一个等号(=),那么他必须在前面等号前面加由一个额外的等号来表明他是键中的一部分。
10.字符串中出现需要使用转义字符来修饰
创建连接字符串
你可以直接手动写一个固定连接字符串,但是如果让客户自己来写合适的连接字符串那最好用ADO.NET2.0中的SqlConnectionStringBulider类来写。使用字符串的builder,极大的增强了安全性,减少了用户插入的不期望的数据的机会,通过Bulider向外界提供字符串中的关键字。
示例:
PublicSubCreateSqlConnection()
()
myConnection.ConnectionString="PersistSecurityInfo=False;IntegratedSecurity=SSPI;database=northwind;server=mySQLServer;ConnectTimeout=30"
myConnection.Open()
EndSub
10. vb2012连接sql2012的中的connectionstring怎么设置啊
在vb2012中打开服务器总管框,点选资料连接,连接到sql2012,在对刚创建好的连接上点选鼠标右键选择属性,在属性框中就可以看到ConnectionString了,接下来复制贴上。