我发现MS article表示我可以使用.XSD文件的ConnectionString属性在运行时更改DataSet的ConnectionString。
这会在.csproj文件中设置一个名为“RuntimeConnectionString”的元素。
但是,当我将其部署到我的Motorola MC9190-G设备(Windows Mobile 6.5.1)时,它不会更改tableadapters的ConnectionString。
我做错了什么,或者这是一个错误?使用Compact Framework更改运行时连接字符串的适当/备用选项是什么?
先谢谢
答案 0 :(得分:0)
我花了一整天的时间来寻找这个问题的解决方案。 看起来它是一个Visual Studio错误(我使用VS2008Professional并且也被困在这个上)。 在这种情况下,两种可能的行动是: 1)在TA构建之前手动更改tableAdapter(TA)connectionString(事实上在连接到db之前)。
// something like this:
if (storageDataSetUtil.DesignerUtil.IsRunTime())
{
// path to database file in my mobile device
this.employeesTableAdapter.Connection.ConnectionString = @"/Program Files/MyApp/data/storage.s3db";
// VS2008-generated code for auto-filling table at runtime:
this.employeesTableAdapter.Fill(this.storageDataSet.employees);
}
2)使用语句'| DataDirectory |'你的TA的connectionString中没有引号(没有引号)。在dataSet designer(schema)中选择TA并显示其属性。展开“连接”字段并选择不用于连接数据库的连接(VS2008通常在将dataSet绑定到WinForms控件时创建一个。如果没有,则手动为TA创建新连接)。因此,用于数据库连接的connectionString保持不变。 使用| DataDirectory |允许您在数据库文件中使用相对路径,并且在大多数情况下是独立于平台的。至于我,这有帮助。希望,这对你也有帮助。
P.S。抱歉英语不好)