日期:2014-05-20  浏览次数:20954 次

求解:无法将类型“System.Data.DataRow[]”隐式转换为“System.Data.DataRow”
case "病人姓名": DataRow drs = ds.Tables["病人信息表"].Select("病人姓名 like '%" + this.textBox1.Text.Trim() + "%'", " 病人姓名 desc");
                        foreach (DataRow dr in drs)
                        {
                            dt.Rows.Add(dr.ItemArray);
                        }
                        break;
还有一个错误:“System.Data.DataRow”不包含“GetEnumerator”的公共定义,因此 foreach 语句不能作用于“System.Data.DataRow”类型的变量是怎么回事

------解决方案--------------------
另外,如果不理解,那么写
var drs = ds.Tables.......
然后你可以在后边使用drs变量时让vs帮你显式一下drs的类型到底是什么。
------解决方案--------------------
...
case "病人姓名":
     DataRow[] drs = ds.Tables[0].Select(" 病人姓名 like '%" + this.textBox1.Text.Trim() + "%'", "  病人姓名 desc"); //DataTable进行Select操作后返回的是DataRow[] 数组,你缺少[],补上再试试吧
     foreach (DataRow dr in drs)
     {
          dt.Rows.Add(dr.ItemArray);
     }
    break;
...
------解决方案--------------------
应该是缺少引用。