我想在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必须在每次迭代时增加1,是否有办法选择其他东西?
谢谢!
答案 0 :(得分: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
答案 1 :(得分:0)
这就是东西,IT工作!!!!
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 = "";
}