You should use:
Data Source=|DataDirectory|\MyDb.sdf
|DataDirectory|
points to the App_Data
folder.
在程序启动时,设置AppDomain.CurrentDomain.setData(“DataDirectory”,我的目录字符串);Winform的程序那当然是在Main函数中了,废话不说了,我的代码如下
string
p
=
AppDomain.CurrentDomain.BaseDirectory;
if
(p.IndexOf(
"
\\bin\\
"
)
>
0
)
{ if (p.EndsWith("\\bin\\Debug\\")) p = p.Replace("\\bin\\Debug", ""); if (p.EndsWith("\\bin\\Release\\")) p = p.Replace("\\bin\\Release", ""); }
if
(
!
p.EndsWith(
"
App_Data\\
"
)) p
=
p
+
"
App_Data\\
"
; AppDomain.CurrentDomain.SetData(
"
DataDirectory
"
, p);
思想就是去掉调试期间和生产期间的不同,这样要注意的是,发布程序的时候,数据库也要放到App_Data目录下面。