这一篇开始讲连接数据库。程序要和数据库进行通信,必须放入连接字符串。这时就摄及到一个问题,因为在上一篇中我们说过了在程序中内嵌mdf文件的方式来和数遍库通信,所以,连接字符串针对本机和内嵌的数据库就有两种不同的表示形式。下面我们将一一说明(有的同学容易忽视技术细节,在编程时直接粘贴代码,而不管它到底是什么意思,为什么要这样写,我觉得这种学习方式不可取,虽然节省了时间,但理解它可以帮助你更好的了解.net,了解它内部原理,比无知的粘贴代码要好。)
针对本机上的数据库,连接字符串是这样的:"Data Source = .\SQLEXPRESS; InitialCatalog=Northwind; IntegratedSecurity=True;"这里只是当做一个例子,为了好说明而已。连接字符串包含一个由一些属性名和值组成的集合,这些属性指出了要访问的数据库服务器,访问方式等,每一个属性都由分号隔开。第一个是数据库的实例名,如我用的是免费版默认的实例,则可以写成".\SQLEXPRESS"。"InitialCatalog"指定了要访问的是哪个数据库,将数据库名赋给它即可。然后就是选择身份验证方式"Integrated Security",身份验证有两种方式,即Windows身份验证和SQL身份验证,Windows身份验证以Windows登陆的身份连接数据库,SQL身份验证需要显示的给出SQLServer的用户ID和密码。也就是说,没有"IntegratedSecurity"这一属性或设置其为False的话,就要加上"UserId=……;Password=……;"。另外,"Integrated Security"这一属性还会识别SSPI(SecuritySupport ProviderInteface,安全性支持提供都接口),初学者暂时不用理会,只要知道它和True有相同作用就可以了。
接下来就是针对程序内嵌mdf文件的方式来连接数据库的连接字符串,这个有点麻烦,先看代码:
以上这段代码放在Main函数最开始的部分,然后连接字符串是这样:
DataSource=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;IntegratedSecurity=True;User Instance=True
传智播客的金牌讲师杨中科老师已经对此做了很详细的解释,因此我就不多加赘述,有兴趣的请参见我的另一篇文章“WinForm程序中两份mdf文件问题的解决”,还有什么不懂的也可以直接联系我。
通过应用程序配置文件来处理连接字符串,这样就可以避免重复输入复杂的代码, 减少写代码时的工作量,同时,发布程序时也可以通过配置文件来修改程序配置。添加应用程序配置文件的方法是在项目上右击—添加—新建项—选择应用程序配置文件,可看见下面的默认名称是App.Config,点击添加即完成添加。然后在弹出的窗口中可以看见类似HTML标签的代码,在<configuration>和</configuration>中添加连接字符串,输入<connectionStrings></connectionString>,再在中间输入<addname="ConStr" connectionString="这里输入连接字符串..."/>
保存后就OK了,然后就是在程序中引用这个configuration,在项目下的“引用”上右击—添加引用,在稍后弹出的对话框中选择
System.Configuration,单击确定,完成对该命名空间的引用添加。再在程序usingSystem.Configuration;这样,就可以在程序中确定连接字符串了,代码如下:
string ConStr =ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;这样,一个ConStr就代替了那么一段字符串。
虽然看起来还是有些麻烦,但当你需要打开多个数据库连接的时候,优势就体现出来了,特别是它在项目发布后仍可以继续修改App.Config中的内容,避免以后连接服务器更换了还需要回来源代码中修改后重新发布。