MyScenario,我有三行,我想换第一列的值。如何实现这个?如何交换dataTable行值?
0
A
回答
0
我真的不明白这个问题,除非你想要一些通用算法,可以在任意数量的行上工作;在任何情况下,您都需要在哪些行之间定义您想要交换的值;在两行之间交换是非常直接的,特别是如果您使用框架的第4版,其中您有两个适用于DataRow的纯粹扩展方法:Field和SetField。如果没有,您需要获取每个DataRow的ItemArrays,交换数组中的值并将数组分配回其行。
2
function SwapField(DataTable table, string columnName, int firstRowIndex, int secondRowIndex)
{
int columnIndex = table.Columns.GetOrdinal(columnName);
if (columnIndex == -1)
{
// Throw exception
}
var secondRowField = dataTable.Rows[secondRowIndex][columnIndex];
dataTable.Rows[secondRowIndex][columnIndex] = dataTable.Rows[firstRowIndex][columnIndex];
dataTable.Rows[firstRowIndex][columnIndex] = secondRowField;
}
然后 SwapField(dataTable的, '列',0,1),以交换前两排字段值
-2
你需要写像
`DataRow row = dt.Rows[index];
dt.RemoveAt(index);
dt.InsertAt(index -1);`
0
示例代码中的一些事情交换一个DataGridView的两行
private void lblMoveDown_Click(object sender, EventArgs e)
{
moveDown();
}
private void lblMoveUp_Click(object sender, EventArgs e)
{
moveUp();
}
private void moveUp()
{
if (dgvTemplateListToManage.RowCount > 0)
{
if (dgvTemplateListToManage.SelectedRows.Count > 0)
{
DataTable dt=dgvTemplateListToManage.DataSource as DataTable;
int rowIndex = dgvTemplateListToManage.SelectedRows[0].Index;
if (rowIndex != 0)
{
DataRow row = dt.Rows[rowIndex];
DataRow drToDown= dt.Rows[rowIndex-1];
DataTable dtTemp = dt.Copy();
for (int i = 0; i < dt.Columns.Count; i++)
{
if (i != 0)
{
dtTemp.Rows[rowIndex][i] = drToDown[i].ToString();
}
}
for (int i = 0; i < dt.Columns.Count; i++)
{
if (i != 0)
{
dtTemp.Rows[rowIndex-1][i] = row[i].ToString();
}
}
dgvTemplateListToManage.DataSource = dtTemp;
}
}
}
}
private void moveDown()
{
DataTable dt = dgvTemplateListToManage.DataSource as DataTable;
int rowIndex = dgvTemplateListToManage.SelectedRows[0].Index;
int lastRowIndex = dgvTemplateListToManage.Rows.Count - 1;
if (lastRowIndex != rowIndex)
{
DataRow row = dt.Rows[rowIndex];
DataRow drToUp = dt.Rows[rowIndex + 1];
DataTable dtTemp = dt.Copy();
for (int i = 0; i < dt.Columns.Count; i++)
{
if (i != 0)
{
dtTemp.Rows[rowIndex][i] = drToUp[i].ToString();
}
}
for (int i = 0; i < dt.Columns.Count; i++)
{
if (i != 0)
{
dtTemp.Rows[rowIndex + 1][i] = row[i].ToString();
}
}
dgvTemplateListToManage.DataSource = dtTemp;
}
}
相关问题
- 1. 交换行值
- 2. 如何交换下拉值?
- 3. 如何根据行值对DataTable中的行进行计数
- 4. 如何重新提交富文本:dataTable
- 5. 交替的Richfaces DataTable行颜色
- 6. 如何交换NSMutableArray中的值?
- 7. 如何交换单列的更新值
- 8. 如何在PHP中交换键/值?
- 9. 如何在SQL Server中交换值?
- 10. 如何在行单击事件中从DataTable行获取值
- 11. 交换价值
- 12. 交换价值
- 13. 交换值
- 14. 交换价值
- 15. 如何使用单个查询更新两行的交换值
- 16. 变量值如何通过交换函数进行更改?
- 17. 如何获取Datatable行值并将其映射到另一个Datatable?
- 18. 如何使用C#将DataTable值转换为json?
- 19. 我该如何转换DataGrid.ItemsSource赋值给DataTable?
- 20. 如何使用LINQ在分组日期DataTable中转换DataTable?
- 21. 如何将强类型的DataTable转换为无类型的DataTable
- 22. SQL - 交换/交换字段值
- 23. 在两行数据之间交换值
- 24. 交换某些行的列值
- 25. sql表中第2行的交换值
- 26. 使用反向/交换值抑制行
- 27. 如何在运行时交换jquery css
- 28. T-SQL - 如何交换行和列
- 29. 如何使用sed交换两行?
- 30. 如何执行上RealmResults交换功能
是DataTable的内容是动态的还是静态的? – yonan2236 2010-09-25 05:06:07