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. 如何對DataTable列值進行排序?
- 3. 如何交換記錄值?
- 4. 如何交換下拉值?
- 5. 交換行值有效地
- 6. 交換R中行的值
- 7. LINQ到更換的dataTable值
- 8. 如何重新提交富文本:dataTable
- 9. 如何根據行值對DataTable中的行進行計數
- 10. 如何執行Datatable Linq Union
- 11. 按行檢索DataTable值
- 12. 交替的Richfaces DataTable行顏色
- 13. 如何在行單擊事件中從DataTable行獲取值
- 14. 如何在PHP中交換鍵/值?
- 15. 如何交換兩個變量值?
- 16. 如何使用SIMD指令交換值?
- 17. 如何交換python中的值?
- 18. 如何交換NSMutableArray中的值?
- 19. 如何交換SQLite列中的值?
- 20. 如何交換單列的更新值
- 21. 交換值
- 22. 交換價值
- 23. 交換值
- 24. 交換價值
- 25. 交換價值
- 26. 交換值
- 27. 交換價值
- 28. List to Datatable。 Datatable不顯示任何值
- 29. 如何獲取Datatable行值並將其映射到另一個Datatable?
- 30. 如何交換pl/sql中的行值 - Oracle?
是DataTable的內容是動態的還是靜態的? – yonan2236 2010-09-25 05:06:07