如何在 C# 中为.mdf Service.cs 文件中的数据库设置本地目录的路径
本文关键字:设置 数据库 路径 文件 中为 mdf cs Service | 更新日期: 2023-09-27 18:30:57
在尝试在 service.cs 文件中为 datbase 设置路径时,您知道如何在 c# 中设置本地目录的路径吗?(我正在VS2010中开发)
我开发了一个使用.mdf
(SQL Server)数据库的winforms程序。程序通过 SQL Server 连接字符串与数据库通信。
我已经硬编码了 mo 处的 db 路径,但想知道如何指向当前目录。
我在网上看到过
AttachDbFilename =|DataDirectory|'Database.mdf
但它似乎对我不起作用,因为连接不会打开。
我也尝试使用Environment.CurrentDirectory
但是CurrentDirectory
奇怪的是不在命名空间中。
如果文件位于同一程序集文件夹中,则可以使用它
string folder = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.ConnectionStrings.ConnectionStrings["myCS"].ConnectionString = config.ConnectionStrings.ConnectionStrings["myCS"].ConnectionString.Replace("#folder#",folder);
config.Save(ConfigurationSaveMode.Full, true);
转到解决方案资源管理器>>右键单击项目>>单击"属性">>转到"设置"选项卡>> 名称:我的连接字符串类型:(连接字符串) 作用域器:应用程序
并选择数据库(Db应保留在您的 |数据目录|以及您的 dblog)>>选择该数据库。>>保存它。
然后使用此代码进行连接 SqlCeConnection cnn = new SqlCeConnection(Properties.Settings.Default.MyConnectionString);
你必须给出命名空间:使用 System.Data.SqlServerCe;
希望这会解决。
接受这是否有效并关闭问题
一种方法可以通过对我有用的代码获取 databese 的 .mdf 和 .ldf,为此,使用连接字符串打开与数据库的连接,准备 SQL 命令,使用查询
select physical_name from sys.database_files where type = 0
然后执行命令,顺便说一下,type = 0
是用于 MDF,type = 1
是用于 LDF,你也可以直接在 SSMS 中使用此查询
这是示例代码,请记住,需要获取连接字符串
string _mdfCommand = "select physical_name from sys.database_files where type = 0";
string _ldfCommand = "select physical_name from sys.database_files where type = 1";
SqlCommand GetSQLData = new SqlCommand();
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
GetSQLData.CommandText = _mdfCommand;
GetSQLData.Connection = connection;
string mdf_Path= (string)GetSQLData.ExecuteScalar();
GetSQLData.CommandText = _ldfCommand;
GetSQLData.Connection = connection;
string ldf_Path= (string)GetSQLData.ExecuteScalar();
connection.Close();