Ali*_*Ali 6 c# datagridview dataset winforms
我正在尝试根据用户偏好对数据集中的记录进行排序.我添加了一个按钮(向上移动)以将所选记录向上提升1行,这是我迄今为止所做的事情:
private void btnMoveUp_Click(object sender, EventArgs e)
{
int index = dataGridView1.CurrentRow.Index;
if (index >= 1)
{
var temp = dsWinners.Tables[0].Rows[index];
dsWinners.Tables[0].Rows[index].Delete();
dsWinners.Tables[0].Rows.InsertAt(temp, index - 1);
dsWinners.Tables[0].AcceptChanges();
dataGridView1.DataSource = dsWinners.Tables[0];
}
}
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误,说"此行已经属于此表." 在这一行:
dsWinners.Tables[0].Rows.InsertAt(temp, index - 1);
Run Code Online (Sandbox Code Playgroud)
我知道我必须使用ImportRow(temp)而不是InsertAt(temp,index - 1),但问题是我不知道如何在正确的位置导入它.我已经看过这个了, 但正如那个回答这个问题的人所说的那样"它的草率和中途."
无论如何我能解决这个问题吗?如果是,我该怎么办?
尝试以下操作:
var temp = dsWinners.Tables[0].Rows[index]; \\getting row
var newrow = dsWinners.Tables[0].NewRow(); \\ creating new row to insert
newrow.ItemArray = temp.ItemArray; \\ copying data from old to new row
dsWinners.Tables[0].Rows[index].Delete(); \\deleting old row.
dsWinners.Tables[0].Rows.InsertAt(newrow, index - 1); \\ adding new row.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1761 次 |
最近记录: |