求解:无法将类型“System.Data.DataRow[]”隐式转换为“System.Data.DataRow”

jys2012 2012-12-29 01:26:56
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”类型的变量是怎么回事
...全文
1221 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangyunfei 2014-08-08
  • 打赏
  • 举报
回复
引用 10 楼 jys2012 的回复:
已解决,,,,
尼 玛 ,你真垃圾,怎么解决的呀,不说,就锁屁话
jys2012 2013-01-03
  • 打赏
  • 举报
回复
已解决,,,,
shijinglin 2013-01-02
  • 打赏
  • 举报
回复
应该是缺少引用。
jys2012 2012-12-31
  • 打赏
  • 举报
回复
引用 4 楼 taomanman 的回复:
引用 3 楼 jys2012 的回复:已解决。。 然后我想问下查询语句,就是textbox里面是查询的关键词,根据这个再从表中找出这一行信息显示出来,但是调试没问题,运行时有误,查询语句不行,应该怎么改 ds.Tables["病人信息表"].Select("病人姓名 like '%" + this.textBox1.Text.Trim() + "%'", " 病人姓名……
还是有错,未将对象引用设置到对象的实例,是什么意思。。 DataRow[] drs1 = ds.Tables["病人信息表"].Select(" 病人编号 like '%" + this.textBox1.Text.Trim() + "%'","病人姓名 desc");
暖枫无敌 2012-12-31
  • 打赏
  • 举报
回复
引用 3 楼 jys2012 的回复:
已解决。。 然后我想问下查询语句,就是textbox里面是查询的关键词,根据这个再从表中找出这一行信息显示出来,但是调试没问题,运行时有误,查询语句不行,应该怎么改 ds.Tables["病人信息表"].Select("病人姓名 like '%" + this.textBox1.Text.Trim() + "%'", " 病人姓名 desc");
注意空格 ds.Tables["病人信息表"].Select(" 这里有个空格的 病人姓名 like '%" + this.textBox1.Text.Trim() + "%'", " 病人姓名 desc");
jys2012 2012-12-31
  • 打赏
  • 举报
回复
还是不行。。
暖枫无敌 2012-12-31
  • 打赏
  • 举报
回复
... 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; ...
jys2012 2012-12-31
  • 打赏
  • 举报
回复
具体前面的如下: SqlConnection con = new SqlConnection("Data Source=;Initial Catalog=xc;Integrated Security=True"); try { con.Open(); } catch (Exception ex) { throw ex; } string sql = "select*from[病人信息表]"; SqlDataAdapter da = new SqlDataAdapter(sql,con); DataSet ds = new DataSet(); //SqlCommand se = new SqlCommand(); da.Fill(ds); DataTable dt =new DataTable(); dt = ds.Tables[0].Clone(); string s = this.comboBox1.Text;
jys2012 2012-12-29
  • 打赏
  • 举报
回复
已解决。。 然后我想问下查询语句,就是textbox里面是查询的关键词,根据这个再从表中找出这一行信息显示出来,但是调试没问题,运行时有误,查询语句不行,应该怎么改 ds.Tables["病人信息表"].Select("病人姓名 like '%" + this.textBox1.Text.Trim() + "%'", " 病人姓名 desc");
  • 打赏
  • 举报
回复
另外,如果不理解,那么写
var drs = ds.Tables.......
然后你可以在后边使用drs变量时让vs帮你显式一下drs的类型到底是什么。
  • 打赏
  • 举报
回复
强类型编程方式,就是在编译时期就给你检查出这类“类型张冠李戴”的错误了。 你向 dt.Rows.Add 方法传入的对象是 DataRow 类型的吗? 这应该自己调试。

13,347

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET技术前瞻
社区管理员
  • .NET技术前瞻社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧