c#.NET 连接 SQLServer 的代码和遇到的问题
2010-04-08 15:51
561 查看
首先申明,本人编程菜鸟,本文只是自己的一个总结,各位看客莫笑!
今天闲来无事,写了一段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啊?!
有时候代码看着挺简单,可是就这么几句代码写起来还碰到好几个问题呢。
只是果然是在于积累啊!
以后就记住了!
今天闲来无事,写了一段C#.NET 连接 SQLServer 的代码, 写的过程中查找了一些资料,并遇到了一些问题,
闲话少说,先上代码。
using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; namespace Test { public class DBConnection { public static void getDBData(out List<string[]> rsltList) { rsltList = new List<string[]>(); SqlConnection objConnection = null; try { string strConnection = "Persist Security Info=False;user id=myID;password=myPWD;initial catalog=northwind;Server=mySQLServer;Connect Timeout=30"; // myID就是用户名 // myPWD就是密码 // northwind为你要使用的数据源,也就是说你要的数据库的名称· // 数据库所在服务器(可以写IP地址) objConnection = new SqlConnection(strConnection); objConnection.Open(); // table_a为检索的表 SqlCommand objsql = new SqlCommand("select * from table_a"); objsql.Connection = objConnection; SqlDataReader myreader = objsql.ExecuteReader(); while (myreader.Read()) { string[] str = new string[6]; // 下面一堆为table_a表里面的字段 str[0] = myreader.GetString(myreader.GetOrdinal("BookNumber")); str[1] = myreader.GetString(myreader.GetOrdinal("BookName")); str[2] = myreader.GetString(myreader.GetOrdinal("Publisher")); str[3] = myreader.GetString(myreader.GetOrdinal("Buyday")); str[4] = myreader.GetString(myreader.GetOrdinal("Country")); str[5] = myreader.GetString(myreader.GetOrdinal("Field")); rsltList.Add(str); } } finally { objConnection.Close(); } } } }
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啊?!
有时候代码看着挺简单,可是就这么几句代码写起来还碰到好几个问题呢。
只是果然是在于积累啊!
以后就记住了!
相关文章推荐
- C# asp.net 搭建微信公众平台(可实现关注消息与消息自动回复)的代码以及我所遇到的问题
- C# asp.net 搭建微信公众平台(可实现关注消息与消息自动回复)的代码以及我所遇到的问题
- asp.net(c#)实现从sqlserver存取二进制图片的代码
- 遇到的问题--------C#连接数据库的语句带特殊字符时无法解析
- vs.net c#连接ORCALE 出现64与32问题
- 发布NBearLite v1.0.0 beta - 全面支持SqlServer,Oracle,MySql,PostgreSql数据库存储过程调用代码生成(C#/VB.NET)
- javascript调用C#代码的问题(asp.net)
- VS2012ASP.NET默认的webconfig以及c#连接oracle数据库出现的问题
- js 里面 写 C# 代码 遇到的问题
- C#连接SQLServer MySql 代码步骤总结
- 遇到的问题--------C#连接数据库的语句带特殊字符时无法解析
- 对调用了TypeMock.net的代码进行调试遇到的怪问题--在vs.net中启动resharper自带的unit test的过程和方式是什么样的?
- .NET(C#)连接各类数据库代码-集锦
- .net中C#代码与javaScript函数的相互调用问题。
- Android通过webservice连接SQLServer 详细教程以及所遇到的问题解答(数据库+服务器+客户端)
- windows2003下asp.Net站点无法使用用户名+密码的方式连接SQLSERVER的问题
- .NET(C#)连接各类数据库代码-集锦
- C#.NET常见问题(FAQ)-使用SharpDevelop开发 如何切换设计视图和代码视图
- https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题
- C#.NET连接数据库代码总结