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

来源:互联网 发布:淘宝的模特是怎么找的 编辑:程序博客网 时间:2024/05/29 09:13

首先在与数据库(文件)建立连接之前需要执行如下代码,该段代码是获取数据库文件路径:

复制代码
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 Program10     {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 }
复制代码
0 0