首先,我只开始使用数据库和c所以我可能犯了一个非常愚蠢的错误,所以提前道歉。我连接到了一个sql server express数据库,可以很好地从中读取数据,但是每当我更新数据集以添加新列,然后尝试更新数据源时,它不会成功更新。代码如下:
DataColumn newColumn;
SqlCommandBuilder cmdBuild = new SqlCommandBuilder(_myAdapt);
foreach (String s in myList)
{
newColumn = new DataColumn(s, System.Type.GetType("System.String"));
_myData.Tables["Table1"].Columns.Add(newColumn);
}
_myAdapt.Update(_myData, "Table1");
有人对为什么这不起作用有什么建议吗?我已经调试过了,数据集肯定是用新列更新的,但我似乎无法更新数据源。
谢谢你的回复。
最佳答案
该列是否存在于数据库中(而不在数据库中),或者是否试图使用数据集更改数据库中的表定义。
我不相信上面第二条是可能的。您的数据集需要有一个列结构来匹配您正在更新的数据库表的列结构。但是,您可以向数据集添加任意多行,它们都可以插入到数据库中。
如果您觉得需要在运行时向表中添加列,我建议您重新访问数据模型。在可能的情况下,列定义应该随着时间的推移而保持不变,以表示要存储的数据实体的主要属性。