C# C:从datarow中选择datarow
如何从另一个datarow中选择datarow? Datarow具有[id、姓名、姓氏、电话、电子邮件、状态] 我需要获取带有[id,name]或[id,name,phone]的数据行C# C:从datarow中选择datarow,c#,select,datatable,datarow,C#,Select,Datatable,Datarow,如何从另一个datarow中选择datarow? Datarow具有[id、姓名、姓氏、电话、电子邮件、状态] 我需要获取带有[id,name]或[id,name,phone]的数据行 foreach (DataRow row in dt.Rows) { //row have columns [id,name,surname,phone,email,status] switch ((Int32)row["status"]) {
foreach (DataRow row in dt.Rows)
{
//row have columns [id,name,surname,phone,email,status]
switch ((Int32)row["status"])
{
case 1:
someFunction(row.[SELECT id,name]); //need here datarow with colums id,name
break;
case 2:
someFunction(row.[SELECT id,name,phone]); //need here datarow with colums id,name,phone
break;
}
}
你应该这样通过
someFunction(row["id"] + "," row["name"]);
Public Foo someFunction(string str)
{
//Here split str with comma (,)
}
你的函数应该是这样的字符串
someFunction(row["id"] + "," row["name"]);
Public Foo someFunction(string str)
{
//Here split str with comma (,)
}
要选择datatable中的行,可以使用方法 或者可以使用重载函数处理不同的行
foreach (DataRow row in dt.Rows)
{
int iRowStatus = Convert.ToInt32(row["status"]);
int iId = Convert.ToInt32(row["id"]);
string sName = row["name"].ToString();
string sPhone = row["phone"].ToString();
switch (iRowStatus)
{
case 1:
someFunction(iId,sName);
break;
case 2:
someFunction(iId,sName, sPhone);
break;
}
}
private void someFunction (int iId, string sName)
{
//do something
}
private void someFunction (int iId, string sName, string sPhone)
{
//do something
}
someFunction应定义为:
DataRow someFunction(DataRow row,String columns){
return row.Table.DefaultView.ToTable(false,columns).Rows[row.Table.Rows.IndexOf(row)];
}
请注意,可以通过缓存过滤后的数据表来优化此函数。什么?很抱歉请再说一遍。很难准确地理解你在问什么,这个问题非常接近于你能为我写这段代码吗?这通常是不允许的。请修改你的问题以便更清楚你的意思。你不需要为我写代码。问题很简单:如何从列id为、名称为、电话为的数据行中获取列id为、名称为的数据行。。。如果哪里没有办法做到这一点-这将是答案!没有办法获取数据行?函数获取数据行。。。或者我需要创建新的DataRow并添加[id、name和etc.]?这就像在整数中询问整数。DataRow有列,无法按列删除或选择?在您的情况下,逻辑保留在两个位置。首先是switch语句,然后是函数someFunction中的其他语句。我的解决办法是把逻辑放在一个地方。i、 在您的函数中。我将所有数据行数据发送到函数。在函数中,按行[状态]创建开关。Thnx的答案…您可以发送数据行作为参数。然后您必须像上面那样从行中获取值。最好使用重载函数。当您传递DataRow时,您必须再次查找状态。检查DataTable。选择选项您必须选择行。DataRow是DataTable的一部分。数据表中存在列。因此,无法从datarow中删除或筛选列。