C#做的mdf数据库程序怎么发布
2017-05-12 · 知道合伙人软件行家
关注
展开全部
首先在与数据库(文件)建立连接之前需要执行如下代码,该段代码是获取数据库文件路径:
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 }
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 }
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询