gpt4 book ai didi

c# - Windows Phone 中的数据库、表、列

转载 作者:搜寻专家 更新时间:2023-10-30 22:11:47 26 4
gpt4 key购买 nike

我在 Windows Phone 7.1 中有一个应用程序,本地数据库 sdf 在独立文件中。现在在我当前的版本中,我有表格:

[Table]
public class Employee
{
[Column(IsPrimaryKey = true)]
public string EmployeeFile
{
get;
set;
}
[Column(CanBeNull = false)]
public string EmployeeName
{
get;
set;
}
[Column(CanBeNull = false)]
public string EmployeeByte
{
get;
set;
}
}

在应用程序的下一个版本中,我想再添加两列,如下所示:

[Table]
public class Employee
{
[Column(IsPrimaryKey = true)]
public string EmployeeFile
{
get;
set;
}
[Column(CanBeNull = false)]
public string EmployeeName
{
get;
set;
}
[Column(CanBeNull = false)]
public string EmployeeType
{
get;
set;
}
[Column(CanBeNull = false)]
public string EmployeeExtn
{
get;
set;
}
[Column(CanBeNull = false)]
public string EmployeeByte
{
get;
set;
}
}

然后,如果我更改表的代码,应用程序会在进行查询时崩溃。如果数据库中不存在这两列,如何添加?

我试过这段代码来更新我的数据库:

 using (Connection Empdb = new Connection(constant.strConnectionString))
{
if (Empdb.DatabaseExists())
{
DatabaseSchemaUpdater dbUpdater = Empdb.CreateDatabaseSchemaUpdater();
// Add the column
try { dbUpdater.AddColumn<string>("EmployeeFile"); dbUpdater.Execute(); }
catch { /* Nothing */ }
try { dbUpdater.AddColumn<string>("EmployeeName"); dbUpdater.Execute(); }
catch { /* Nothing */ }
try { dbUpdater.AddColumn<string>("EmployeeType"); dbUpdater.Execute(); }
catch { /* Nothing */ }
try { dbUpdater.AddColumn<string>("EmployeeExtn"); dbUpdater.Execute(); }
catch { /* Nothing */ }
try { dbUpdater.AddColumn<string>("EmployeeByte"); dbUpdater.Execute(); }
catch { /* Nothing */ }
}
}

每一列都会被这段代码捕获,这段代码是否正确,该列将被添加到哪个表中?该列将添加到哪个表中?

最佳答案

您应该使用如下所示而不是您需要告诉表名的列类型列类型将从表类中获取

try { dbUpdater.AddColumn<Employee>("EmployeeFile"); dbUpdater.Execute(); }
catch { /* Nothing */ }

关于c# - Windows Phone 中的数据库、表、列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26168257/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com