您的位置:首页 > 数据库

C#winform直接连接SQL数据库mdf文件

2016-09-22 18:51 363 查看
首先在与数据库(文件)建立连接之前需要执行如下代码,该段代码是获取数据库文件路径:

1 string dataDir = 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  }


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

If语句判断目录末尾是否为debug或release目录,即程序生成目录。此处EndsWith方法判断字符串末尾是否包含指定的字符串值。

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

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

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

数据库连接字符串的不同

 

接下来就是数据库连接字符串内容有别于连接数据库的字符串内容:

"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\Database1.mdf;integrated Security=True;User Instance=True"

可以看到”AttachDBFilename=|DataDirectory|\Database1.mdf”,这里指定了附加数据库文件的绝对路径。

全部代码如下(vs2008+sqlserver2005):

1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Data.SqlClient;
6
7 namespace ADO_NetTest
8 {
9     class Program
10     {
11         static void Main(string[] args)
12         {
13             string dataDir = AppDomain.CurrentDomain.BaseDirectory;
14             if (dataDir.EndsWith(@"\bin\Debug\") || dataDir.EndsWith(@"\bin\Release\"))
15             {
16                 dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
17                 AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
18             }
19
20             using(SqlConnection sqlcon = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\Database1.mdf;integrated Security=True;User Instance=True"))
21             {
22                 sqlcon.Open();
23                 Console.WriteLine("Open Database Connect Success!");
24
25                 using (SqlCommand cmd = sqlcon.CreateCommand())
26                 {
27                     cmd.CommandText = "insert into Table1(Name) values('ccc')";
28                     cmd.ExecuteNonQuery();
29                     Console.WriteLine("Insert Data Success!");
30                 }
31
32             }
33             Console.ReadKey();
34         }
35     }
36 }


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: