C# datatable select问题

30,31都是datatable
OdbcDataAdapter send30 = new OdbcDataAdapter(sql, con);
DataTable dt30 = new DataTable();
send30.Fill(dt30);

DataTable dt31 = new DataTable();
string a;
a =dt30.Rows[0][1].ToString();
dt31 = dt30.Select("发票号= '"+a+"'");

this.dataGridView5.DataSource = dt31.DefaultView;

提示:错误 16
无法将类型“System.Data.DataRow[]”隐式转换为“System.Data.DataTable” E:\ERP\imformation\imformation\sd01.cs 1099 20 information

第1个回答  2008-08-26
楼上的大哥 用的着那么麻烦吗?

既然返回的是row类型的那就加到表里好了:
把dt31 = dt30.Select("发票号= '"+a+"'"); 改成

dt31.Rows.Add( dt30.Select("发票号= '"+a+"'"));
第2个回答  推荐于2016-06-02
DataTable的Select()方法返回的是一个DataRow的数组,
在你的代码中 dt31 = dt30.Select("发票号= '"+a+"'");显然dt31是Datatable类型,赋值号后面是DataRow数组。
分析楼主的意思,可能是想要dt30中的发票号为 a的数据,组成一个新的Datatable作为Gridview的数据源吧?
要是的话可以用下面的代码:
string a;
a =dt30.Rows[0][1].ToString();
DataView dataView = dt30.DefaultView;//定义一个DataView为dt30的默认视图
dataView.RowFilter = "发票号 = '"+a+"'"; //对dataView进行筛选

this.dataGridView5.DataSource = dataView;//筛选后的dataView做数据源

chufuya:返回的是数组,数组的元素是DataRow。你的这句代码“dt31.Rows.Add( dt30.Select("发票号= '"+a+"'"));”应该是不会通过编译的吧?参数不对。本回答被提问者采纳
第3个回答  2008-08-26
dt31 = dt30.Select("发票号= '"+a+"'");

c# datatable.select();的问题
DataTable的Select()方法返回的是一个DataRow的数组,在你的代码中 dt31 = dt30.Select("发票号= '"+a+"'");显然dt31是Datatable类型,赋值号后面是DataRow数组。分析楼主的意思,可能是想要dt30中的发票号为 a的数据,组成一个新的Datatable作为Gridview的数据源吧?要是的话可以用下面的代码...

C# DataTable中Select()方法 中可以执行sql语句么???
不可以,DataTable的select方法中只有 条件和排序两个,而条件只能用简单的静态条件,所以不能执行SQL语句。

C# datatable.select()报错:索引超出了数组界限
没有查询出该ID对应的数据,然后你用索引去取就会越界了 DataRow [] rows= o.Select("ID="+ID.ToString(), "");if (rows.Count() > 0){ var data = rows[0];var treeText = data["TreeText"].ToString();}

c#中,DataTable.Select()中括号里的参数的语法规则,是个什么样的? 本...
Select(String)\/Select(String, String)\/Select(String, String, DataViewRowState)private void GetRows(){ \/\/ Get the DataTable of a DataSet.DataTable table = DataSet1.Tables["Suppliers"];DataRow[] rows = table.Select();\/\/ Print the value one column of each DataRow.for(int i ...

c#熟悉DataTable的Select的朋友来看一个问题,关于单引号的
dt.Select("pid='11873' and from='1'") 我用这个试了 没有问题啊! 语法没有问题,报错信息为:不能找到列 说明是你的列名写错了 id ,vc_name没有写错吧,确定和数据表的列名相同。

C# DataTable Select的奇怪现像
经过软糖的测试。Roles.Select("IsChecked=1")是没有问题的,正确的输出了。肯定出在你其他代码上。把相关内容贴上来看看。怀疑是筛选的问题。还有监视窗体的Roles.Select("IsChecked=1")[1].Table返回的是整个表。

关于c#中DataTable的Select过滤
string a = ""; \/\/这里可以使用StringBuilder foreach (DataRow dr in dtTrees.Rows){ a += dr[0].ToString() + ",";} a = a.Trim(',');DataRow[] drs = dtTrees.Select("pid not in (" + a + ")"); \/\/这里用not in \/\/drs就是所要的查询结果。

c#winform中的datatable 的select()的模糊查询咋整?
包含零个或多个字符的任意字符串 _(下划线) 任何单个字符 [ ] 指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符:?同于DOS命令中的?通配符,代表单个字符 大致同上,不同的是代只能代表单个数字 select * from tab where id='11__00'...

C# DataTable.select条件返回行数和直接写sql语句查询条件返回行数不...
dt_sqlOld.select() 返回的是DataRow[]类型,sql语句查出来返回的是DataTable类型,所以它们是不一样的

C#在datatable中怎么筛选数据?
\/\/itemType是A中的一个字段\\x0d\\x0aB= view.ToTable();\\x0d\\x0a(2)方法二:通过 Select()筛选\\x0d\\x0aDataRow[] rows = A.Select("itemType = 'book'");\\x0d\\x0aB= A.Clone(); \/\/克隆A的结构\\x0d\\x0aforeach (DataRow row in rows)\\x0d\\x0a{\\x0d\\x0a ...

相似回答