首先,我只是开始使用数据库和c#所以我可能在这里犯了一个非常愚蠢的错误,所以请提前道歉。我已连接到SQL Server express数据库并且可以正常读取它,但每当我更新我的DataSet以添加新列然后尝试更新数据源时它就不会成功更新。代码如下:
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");
任何人都有任何建议,为什么这不起作用?我调试了它,数据集肯定是用新列更新的,但我似乎无法更新数据源。
感谢您的回复。
答案 0 :(得分:0)
该列是否存在于数据库中(并且不存在于数据库中),或者您是否尝试使用数据集更改数据库中的表定义。
我不相信上面的第二个是可能的。您的数据集需要具有与您要更新的数据库表的列结构相匹配的列结构。但是,您可以根据需要向数据集添加任意数量的行,并且它们都可以很好地插入到数据库中。
如果您认为需要在运行时向表中添加列,我建议您重新访问数据模型。在可能的情况下,您的列定义应该随着时间的推移不变,以表示您正在存储的数据实体的主要属性。