现在的位置: 首页 > 综合 > 正文

c#.NET 连接 SQLServer 的代码和遇到的问题

2013年02月06日 ⁄ 综合 ⁄ 共 2258字 ⁄ 字号 评论关闭

首先申明,本人编程菜鸟,本文只是自己的一个总结,各位看客莫笑!

今天闲来无事,写了一段C#.NET 连接 SQLServer 的代码, 写的过程中查找了一些资料,并遇到了一些问题,

 

闲话少说,先上代码。

 

 

 

1,string strConnection = "Persist Security Info=False;user id=myID;password=myPWD;initial catalog=northwind;Server=mySQLServer;Connect Timeout=30";

这一段应该就是连接DB之前的一些设定了。
包括了用户名,密码,数据库名,服务器地址等等。

如果你的SQL Server设置为Windows登录,那么在这里就不需要使用“user id”和“password”这样的方式来登录,而需要使用“Trusted_Connection=SSPI”来进行登录。


代码如下: string strConnection = "Persist Security Info=False;Integrated Security=SSPI;database=northwind;server=mySQLServer;Connect Timeout=30";

PS:Persist Security Info=False 是什么意思?(具体上google看看)

Persist Security
Info属性的意思是表示是否保存安全信息,其实可以简单的理解为"ADO在数据库连接成功后是否保存密码信息",

True表示保存,False表示不保存。

 

2,写代码中遇到了2个问题

a问题:

System.InvalidOperationException
是 ServerVersion = 'objConnection.ServerVersion' 的例外。
具体内容是: 操作无效,接续处于关闭状态。

但是这个exception没有被throw出来,等到objConnection.Open() 被执行之后,
ServerVersion 就显示出来了。
仔细想想,这个应该不算exception吧?
因为你都还没有open,人家当然会报 “操作无效,接续处于关闭状态”这个“警告”啦!(猜想,呵呵,不要砸我!)

 

b问题:

ExecuteReader: Connection 属性没有被初期化

于是加上: objsql.Connection = objConnection

问题得以解决。

仔细想想,不然一个sqlcommand怎么知道我用的是哪个connection,取的是哪个DB啊?!

 

有时候代码看着挺简单,可是就这么几句代码写起来还碰到好几个问题呢。

只是果然是在于积累啊!

以后就记住了!

    抱歉!评论已关闭.