【问题标题】:Setting SQL Server CE connection for a dll class library为 dll 类库设置 SQL Server CE 连接
【发布时间】:2016-09-28 10:27:48
【问题描述】:

我可以使用连接到 SQL Server CE .sdf 文件的 Windows 窗体来构建应用程序以进行读写。现在我需要对一个打算成为 Revit 插件的类库 .dll 项目做同样的事情,所以我也添加了 app.configSettings.settings,但徒劳无功!

有什么建议可以正确保存连接字符串,使其适用于多个桌面?

提前致谢!

【问题讨论】:

  • 只在代码中设置连接字符串??
  • 感谢@ErikEJ 的评论。以这种方式设置连接的问题 - String consting = "Data Source = |DataDirectory|RoomDB.sdf" - 是它在安装 Revit 的目录中搜索“RoomDB.sdf”,而偏离路线不会在那里。
  • 我将“RoomDB.sdf”定位在插件项目的同一目录中,我需要连接字符串来引用该位置。这可能吗?
  • 换句话说,我需要将连接字符串的格式设置为不依赖于我的 PC,我需要它的格式使我的加载项能够安装在多台 PC 上,而不会丢失与 .sdf 文件的连接。请帮助@ErikEJ 先生! ,并忘记感谢@marc_s 纠正我的帖子。

标签: c# sql-server-ce connection-string class-library sql-server-ce-4


【解决方案1】:

如果你使用DataDirectory,你可以在代码中设置它的值:

string path = // folder path to the database file       
AppDomain.CurrentDomain.SetData("DataDirectory", path);

【讨论】:

  • 如果我尝试在其他电脑上安装插件会成功吗?
  • 我尝试使用以下格式引用同一个 dll 目录: String mycon = " Data Source = \"System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName ().CodeBase)\\RoomDB.sdf"; 但它给了我以下错误“初始化字符串的格式不符合从索引 1 开始的规范。”
  • 对于您的问题 - 是的,如果您能够找到 .sdf 文件!
  • 好吧,我担心如果我这样做,Revit 会将当前的数据目录作为我提供的路径,然后我会想出无尽的错误,比如找不到它自己的 .dll 文件,比如 RevitAPI .dll
  • 是的,当然。我在大学学习过 C# 基础知识和 SQL 基础知识,但我喜欢编程,所以最近我正在通过互联网研究来支持我的实践,并提出我不知道的问题。你有我可以学习的在线 C# 或 SQL 课程吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多