.net内嵌mdf文件形式连接数据库

这一篇开始讲连接数据库。程序要和数据库进行通信,必须放入连接字符串。这时就摄及到一个问题,因为在上一篇中我们说过了在程序中内嵌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文件的方式来连接数据库的连接字符串,这个有点麻烦,先看代码:

    

  1. stringdataDir = AppDomain.CurrentDomain.BaseDirectory; 
  2.        if(dataDir.EndsWith(@"\bin\Debug\") ||dataDir.EndsWith(@"\bin\Release\")) 
  3.       { 
  4.           dataDir =System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName; 
  5.           AppDomain.CurrentDomain.SetData("DataDirectory",dataDir); 
  6.       } 

以上这段代码放在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中的内容,避免以后连接服务器更换了还需要回来源代码中修改后重新发布。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值