我正在SqlDataAdapter
正在更新DataRow
。
我得到了异常
对于不返回任何键列信息的SelectCommand,不支持UpdateCommand的动态SQL生成
如果我将主键放在表格中,则会出错。
但我不想把主键放进去。
var dataAdapter = new SqlDataAdapter();
var updatedRows = Getting some row ...
dataAdapter.Update(updatedRows);
答案 0 :(得分:1)
如果没有主键,您将无法依赖SqlCommandBuilder为您生成insert / update / delete命令。
如果您仍想使用SqlDataAdapter修改数据,则需要显式设置适配器的InsertCommand,UpdateCommand,DeleteCommand属性。
这可能有助于您入门: https://msdn.microsoft.com/en-us/library/ms971491.aspx
编辑:没有主键,在修改数据时你必须非常小心。例如当执行UPDATE sql时,更容易意外地为DataRow更新表的1行以上。拥有主键将使事情变得更容易,更健壮。