SQL Server总结(1):程序和数据库的连接

最近做了一个数据库的项目,遇到挺多问题,总结一下。

SQL Server2008介绍:

数据库:32767个数据库,最小为1MB,最大为1TB。

表:每个数据库最多有20亿个表。

列:每个表最多有1024个列,每列的最大字节数为8060(文本和图像列除外)。

索引:每个表有一个聚集索引、249个非聚集索引,一个复合索引最多有16个索引关键字。

触发器:每个表最多有3个触发器,分别用于插入(insert)、修改(update)和删除(delete)等操作。

存储过程:一个存储过程可以有1024个参数和最多32级嵌套。

用户连接:32767个。

锁定及打开的对象:20亿个。

程序和数据库的连接

两种方式:

方式一:程序与本机数据库连接

连接字符串格式:"DataSource = .\SQLEXPRESS; InitialCatalog=Northwind; IntegratedSecurity=True;"

(1)第一个是数据库的实例名,如我用的是免费版默认的实例,则可以写成".\SQLEXPRESS"。(2)"InitialCatalog"指定了要访问的是哪个数据库,将数据库名赋给它即可。

(3)身份验证方式"IntegratedSecurity",身份验证有两种方式,即Windows身份验证和SQL身份验证,Windows身份验证以Windows登陆的身份连接数据库,SQL身份验证需要显示的给出SQLServer的用户ID和密码。也就是说,没有"IntegratedSecurity"这一属性或设置其为False的话,就要加上"UserId=……;Password=……;"。另外,"Integrated Security"这一属性还会识别SSPI(SecuritySupport ProviderInteface,安全性支持提供都接口),初学者暂时不用理会,只要知道它和True有相同作用就可以了。

方式二:基于内嵌mdf文件的方式与数据库连接

通过查看数据库的属性可以得到连接字符串:

DataSource=(LocalDB)\v11.0;AttachDbFilename="F:\c#\Visual Studio2013\Projects\MDF1\登录测试\MyDB.mdf";Integrated Security=True

或者:

"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\Database1.mdf;integrated Security=True;User Instance=True"
可以看到”AttachDBFilename=|DataDirectory|\Database1.mdf”,这里指定了附加数据库文件的绝对路径。

注意采用这种方式,要在main函数里添加下面代码:

            string dataDir =AppDomain.CurrentDomain.BaseDirectory;

            if(dataDir.EndsWith(@"\bin\Debug\") ||dataDir.EndsWith(@"\bin\Release\"))

            {

                dataDir =System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;

               AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);

            } 

  解释如下:

            /*该段代码是获取数据库文件路径:

            AppDomain.CurrentDomain.BaseDirectory属性为程序所在目录。

             If语句判断目录末尾是否为debug或release目录,即程序生成目录。

             此处EndsWith方法判断字符串末尾是否包含指定的字符串值。

             dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;

             这句获取程序所在目录的上两级目录,即由vs生成的数据库文件路径。

             最后设置数据库文件路径。

             */


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值