【问题标题】:SQL Server CE Local Application issuesSQL Server CE 本地应用程序问题
【发布时间】:2010-06-19 05:32:26
【问题描述】:

我来这里是因为 C# 应用程序中的 SQL Server CE 出现问题。

这是一个非常简单的问题,一开始我是想在一个表中做一个INSERT,但它没有做,所以我搜索了一下,解决方法是把文字字符串连接到数据库.

try
{
    cnTrupp.Open();
    SqlCeCommand com = new SqlCeCommand("INSERT INTO tipo_venta(nombre) VALUES (@nombre)", cnTrupp);
    com.Parameters.AddWithValue("@nombre", pNombre);
    com.ExecuteNonQuery();
    com.Dispose();
}
catch (SqlCeException e)
{
    LogFile log = new LogFile(e.Message);
}
finally
{
    cnTrupp.Close();
}

在使用文字字符串之后,我想知道,当我部署应用程序时,我应该如何更改该连接字符串?所以它指向新计算机中的实际数据库

【问题讨论】:

  • 欢迎来到 SO。突出显示代码并按 ctrl-k 使其正确呈现。
  • 最后贴出来了,第一次见谅:S
  • DataDirectory 由安装程序或主机环境定义,您不应更改它。你在说什么“文字字符串”?你的连接字符串是什么?你在做什么样的应用程序?网络表格? ASP.NET?赢表格?服务?是什么让您认为 CE“没有做”您的插入?

标签: c# sql sql-server-ce local


【解决方案1】:

“Paul Sasik”帖子中的 cmets 讨论了您的应用程序的 app.config 文件中的 Data Source=|DataDirectory|\example.sdf 条目。

为了完整起见:|DataDirectory| 部分是一个宏,它会自动扩展至您的应用程序运行所在的文件夹,不应进行硬编码。如果要更改文件夹,可以在Program.cs 中使用以下行:

AppDomain.CurrentDomain.SetData("DataDirectory", <New Folder>);

至少对于桌面应用程序是这样。由于移动应用程序(在 VS 2005 和 2008 中)不支持相同的配置机制,您必须在那里手动创建连接字符串。

【讨论】:

  • 我真的不鼓励告诉初学者改变DataDirectory。这应该由安装程序或主机环境设置,如果您更改它,您将不知道数据托管在哪里。对于几乎所有实际情况,您应该让安装程序或主机设置DataDirectory 而不要更改它。
【解决方案2】:

利用 .NET app.config 文件。这是VB article,但可以帮助您入门。

.NET 配置文件相当容易使用,但使用 db 连接之类的信息,您可能需要考虑加密配置文件中的字符串。或者至少是密码。也就是说,如果安全是一个问题。很多时候不是。尤其是在本质上不安全的移动设备上(至少在 WinCE 世界中......直到 CE5 v.6)

【讨论】:

  • 这是一开始的问题,它有类似“Data Source =|DataDirectory|\example.sdf”的东西,它并没有真正提交给数据库,然后我改变了那部分到文件的真实目录。
  • 配置文件不是“|DataDirectory|”的问题曾是。据我所知,这不是合法的。它可能是指 CE 设备上的“永久”存储文件夹的存根。每个设备制造商似乎都有自己的。你需要找出你正在使用的那个并使用它。顺便说一句,为了解决这个问题,我在上一份工作中确实编写了一个小算法来测试并查看当前设备支持哪些常见的“数据目录”。我相信只是一系列简单的 Directory.Exists 调用。
  • 我认为是这个问题,但问题是我自己没有放那部分,它是由VS2010自动完成的
  • 哈哈。我知道现在是 2010 年,但你仍然需要培养和保持对 Visual Studio 的健康不信任!现在更有意义的是,他们只会插入占位符文本,因为每个制造商的做法都不同。
  • 我写了一个关于“|DataDirectory|”的答案您看到的连接字符串的一部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多