0

我想在 DataSet 中选择当前行位置但没有任何循环,我可能知道但我卡住了....

首先我声明一个 DataTable 并用数据填充它:

DataTable dr_art_line_2 = ds.Tables["QuantityInIssueUnit"];

然后在女巫中有一个 if 循环我有这个代码:

if (dr_art_line_2.Rows.Count > 0)
{

   int ID_line = (int)ds.Tables["Line"].Select()[0]["Line_Id"];
   int ID = (int)ds.Tables["QuantityInIssueUnit"].Select()[ID_line]["Line_Id"];

   QuantityInIssueUnit_value = Convert.ToString(dr_art_line_2.Rows[ID] ["QuantityInIssueUnit_Text"]);
   QuantityInIssueUnit_uom = Convert.ToString(dr_art_line_2.Rows[ID]["uom"]);

}
else
{
    QuantityInIssueUnit_value = "";
    QuantityInIssueUnit_uom = "";
 }

我这里有问题:

int ID_line = (int)ds.Tables["Line"].Select()[0]["Line_Id"];
int ID = (int)ds.Tables["QuantityInIssueUnit"].Select()[ID_line]["Line_Id"];

我想选择“Line ID”,没关系,但 ID_line 必须在每次迭代时增加一个,有没有办法对其他东西进行某种选择?

谢谢!

4

2 回答 2

1

CurrentRow(数据游标)是连接数据源(VB6 ActiveX ADO)的概念。当您移动、更新或删除 CurrentRow 时,所做的更改将被写回数据源。

DataTable 或 DataSet 是从 DISconnected 数据源 (ADO.NET) 返回的行的集合。

如果您想要 DataTable 的“当前行”,您可以为 DataTable 创建一个包装类并添加一个 iCurrentRow 属性。当您通过行“导航”时,您需要更新此成员变量(在您在此包装类中提供的 MoveFirst.MoveLast、MoveNext 和 MovePrev 方法中。)

有关其他替代方法,请参阅: http: //support.microsoft.com/kb/310372

如果您想要 DataGrid 的行号,请参阅这篇文章: http: //www.codeproject.com/Articles/9601/Obtaining-Current-DataTable-Row-for-a-DataGrid

于 2013-03-19T02:40:13.570 回答
1

这就是东西,它的工作原理!!!!

if (dr_art_line_2.Rows.Count > 0)
{   
    int ID_line = dr_art_line_1.Rows.IndexOf(dr_art_line); 

    //int ID_line = (int)ds.Tables["Line"].Select()[0]["Line_Id"];
    int ID = (int)ds.Tables["QuantityInIssueUnit"].Select()[ID_line]["Line_Id"];

    QuantityInIssueUnit_value = Convert.ToString(dr_art_line_2.Rows[ID]["QuantityInIssueUnit_Text"]);
    QuantityInIssueUnit_uom = Convert.ToString(dr_art_line_2.Rows[ID]["uom"]);    
}
else
{
    QuantityInIssueUnit_value = "";
    QuantityInIssueUnit_uom = "";
}
于 2012-07-20T08:45:17.440 回答