我已经为我的代码添加了一个FOREACH循环,我想让它循环我有多少选定的项目。如果我选择2,当我调试时它的计数为2,但是从第一个选定的项目中获取信息两次。
if(result == MessageBoxResult.Yes)
{
int userid = viewuser.AuditUserId;
var data = (string)null;
foreach (var item in dgAllocate.SelectedItems)
{
data = transaction.TransactionId.ToString();
sp.InsertInformationToAuditTasks(userid, data, "15000", DateTime.Now);
}
}
这是我的循环,它决定从不同的选定项目中获取不同的TransactionIds。
正如你所看到的,我选择了多个,它会带出相同的ID?
编辑:
cAuditTransactionsEntity transaction = _TransactionId as cAuditTransactionsEntity;
这就是我定义交易的方式。
答案 0 :(得分:6)
您每次迭代都会更新“item”的值,但不会使用它。
您正在从“交易”中分配“数据”,而您尚未更新:
data = transaction.TransactionId.ToString();
答案 1 :(得分:2)
您永远不会使用循环中设置的'item'变量。我认为您需要以某种方式使用它来更改数据。交易在哪里定义?它根本没有在循环中修改。
答案 2 :(得分:2)
您需要从商品中获取数据,而不是从您的交易中获取交易ID:
foreach (var item in dgAllocate.SelectedItems)
{
var data = item.TransactionId.ToString();
sp.InsertInformationToAuditTasks(userid, data, "15000", DateTime.Now);
}
检查您的代码:
var data = (string)null;
会发出强制转换异常。在foreach循环中移动声明。
答案 3 :(得分:2)
我们假设item
的类型为cAuditTransactionsEntity
,然后您就可以获得data
这样的多个项目
if(result == MessageBoxResult.Yes)
{
int userid = viewuser.AuditUserId;
var data = (string)null;
foreach (var item in dgAllocate.SelectedItems)
{
// Here u have to get cAuditTransactionsEntity by item object
data = (item as cAuditTransactionsEntity).TransactionId.ToString();
sp.InsertInformationToAuditTasks(userid, data, "15000", DateTime.Now);
}
}