数据库里有个列是标识,怎么才能删除行,具体情况是这样的,单号是标识,可是我得做个删除单子的操作。问题:
1.针对单子这中形式的数据库应该怎么设计。是不是不应该用标识,还是用。
2.要是用标识的话我的单子怎么删除。
3。要是不用标识。我该怎么设计。。今天就10分了,先谢过!!
1.针对单子这中形式的数据库应该怎么设计。是不是不应该用标识,还是用。
2.要是用标识的话我的单子怎么删除。
3。要是不用标识。我该怎么设计。。今天就10分了,先谢过!!
---用没有关系。to2.要是用标识的话我的单子怎么删除。
--你读每一条记录时,就连这一个字段读出来,你中意存在datatable,dataset,或字符串等等,都可以,你删除的时候,就去找到 标识 字段删除就可以了。to3。要是不用标识。我该怎么设计。。
--不用的话,你可以设置一个字段(如PRO_ID,这类的),或组合字段作为主键,你删除的时候,就根据主键来删除就可以了
我删除记录的代码如下:
int intRowNumber = this.dataGridView1.CurrentCell.RowIndex;
this.ds.tabales[0].rows[intRowNumber].delete();//在是数据集里删除记录
this.da = new SqlDataAdapter(this.strSQl, this.sqlCon);
this.sqlCmdBld = new SqlCommandBuilder(da);
this.da.Update(ds.GetChanges(), tableName);//问题出在这。错误信息如下:对于不返回任何键列信息的 SelectCommand,不支持 DeleteCommand 的动态 SQL 生成。
数据表里,你可以增加一个字段自动增量,或IDENTITY字段嘛。也许这个字段没什么意义,但它可以唯一标识一行,而且没有它,一般SqlCommandBuilder无法自动生成DeleteCommand.要么你就拿几个字段组合成一个Primary Key.总之,表里必须要有一个唯一能够标识一行的信息。
想做个有标识的数据库删除记录程序(就是存,删除单子的程序)。因为在2.0下SqlDataAdapter.UPDATE()方法,为 DataSet 中每个已插入、已更新或已删除的行调用相应的 INSERT、UPDATE 或 DELETE 语句。 所以,我针对删除有标识的记录是这样操作的,先在数据集中把记录删除,然后在用UPDATE来更新数据库。我删除记录的代码如下:
int intRowNumber = this.dataGridView1.CurrentCell.RowIndex;
this.ds.tabales[0].rows[intRowNumber].delete();//在是数据集里删除记录
this.da = new SqlDataAdapter(this.strSQl, this.sqlCon);
this.sqlCmdBld = new SqlCommandBuilder(da);
this.da.Update(ds.GetChanges(), tableName);//问题出在这。错误信息如下:对于不返回任何键列信息的 SelectCommand,不支持 DeleteCommand 的动态 SQL 生成。
BindingSource1.RemoveAt(i);
TableAdapter1.Update(DataSet.datatable);
让你的标识列做主键也可以