- 将问题更改为另一种更简单的形式 -
请查看以下代码:
“给定错误” 错误:
更新无法找到TableMapping ['Table']或DataTable'Table'。
DataSet是强类型的, 我们有一个DataTable“dtNew” [由列表“ListProducts”制作,(无论在这里!)]
数据库中的一列名称与列表的字段不同: “标题”应与列映射:“TitleInDb”
SqlCeDataAdapter Adapter;
DsProducts Ds1Products ; // Strongly Typed
DataTable dtNew = new DataTable("Products");
DataColumn dc;
DataRow[] updRows;
// Fields : Name , Title, Price
dc = new DataColumn("Name", typeof(string));
dtNew.Columns.Add(dc);
dc = new DataColumn("TitleInDb", typeof(string)); // The difference is by a reason
dtNew.Columns.Add(dc);
dc = new DataColumn("Price", typeof(string));
dtNew.Columns.Add(dc);
dtNew = updRows.CopyToDataTable();
Ds1Products.Tables.Add(dtNew);
// The Problems appear here :
// The Iteration is just for debugging phase and watching the changes which the columns are same
as before
foreach (var col in dtNew.Columns)
{
Console.WriteLine(col.ToString());
Console.WriteLine(col.GetType());
}
// New Table is there, But here will come the Error
Adapter.Update(Ds1Products);
运行它,迭代新列我发现“Products”表没有变化,我认为当时应该删除它。此表"dtNew"
的名称似乎也是"table1"
附加说明: 它使用Sql Compact 3.5 代码只是一段代码,显示确切的问题!
请查看代码并就此提出您的想法, 我正在尝试基于刷新的表(或DataRows [])来创建整个数据库
修改: * 替换DataSet中的DataTable: * 这意味着删除第一个DataTable并创建一个新的DataTable并将其放入! 不能说更容易......(基于评论)