我正在尝试对我在sqlservermanagement
我在visual studio 2012上制作了一个控制台应用程序
我有这个陈述
foreach (DataRow pRow in persoaneSet.Tables["persoane"].Rows)
{
Console.Write("\t{0}\t{1}\t{2}", pRow["nrcrt"],pRow["nume"],pRow["codc"]);
foreach (DataRow cRow in pRow.GetParentRow(relPersCrt)) // **here is the error**
{
Console.WriteLine("\t{0}\t{1}\t{2}", cRow["autor"],cRow["titlu"],cRow["cota"]);
}
}
在这里,我必须从我的数据库和表1中将表1与表2相提并论,我和我的老师一样,但不幸的是我记得错误
foreach语句不能对'System.Data.DataRow'类型的变量进行操作,因为'System.Data.DataRow'不包含'GetEnumerator'的公共定义
我该怎么办?
老师的例子,但不是我的
答案 0 :(得分:1)
您不需要foreach
,因为只有一个父行。尝试:
foreach (DataRow pRow in persoaneSet.Tables["persoane"].Rows)
{
Console.Write("\t{0}\t{1}\t{2}", pRow["nrcrt"],pRow["nume"],pRow["codc"]);
DataRow cRow = pRow.GetParentRow(relPersCrt);
Console.WriteLine("\t{0}\t{1}\t{2}", cRow["autor"],cRow["titlu"],cRow["cota"]);
}
此外,您应该考虑添加额外的检查,因为您的代码很容易出现未处理的异常。
答案 1 :(得分:0)
您只能将foreach用于实现IEnumerable接口的东西。基本上你只能迭代一堆东西,而不是一件事。你的第一个foreach遍历一组行,第二个你试图迭代一行。