Developer Network
Developer Network
Developer
:CreateViewProfileText:
登录
MSDN 订阅
获取工具
下载
Visual Studio
SDK
试用软件
免费下载
Office 资源
计划
订阅
Administrators
学生
Microsoft Imagine
Microsoft 学生合作伙伴
ISV
新手
Events(事件)
社区
Magazine
论坛
博客
第 9 频道
文档
API 和参考
开发人员中心
示例
停用的内容
非常抱歉。你请求的内容已被删除。将在 1 秒内自动重定向。
提出问题
快速访问
论坛主页
浏览论坛用户
FAQ
搜索相关主题
Remove From My Forums
积极答复者
同志们。我又郁闷了,如果datarow row=table.select("数据库字段 in('"+数组+"')") 明明数组中有很多值,为什么row中一个都没取到呢?
.NET 开发
>
ADO.NET 与 LINQ
问题
0
登录进行投票
//用datareader把id='2493C2B2F1D34371BCDECDFF6D0E247D'及其子项目的据全都读出来(我在数据库中用了递归)
OracleDataReader odr_Get_Child_Id = db.execute_Reader("mis_manager", "select id from bumen start with id='2493C2B2F1D34371BCDECDFF6D0E247D' connect by prior id=up_id");
string str_In_Id = string.Empty;
while (odr_Get_Child_Id.Read()) { str_Bumen_Id += ',' + odr_Get_Child_Id.GetString(0); }
if (!odr_Bumen.IsClosed) { odr_Bumen.Close(); }
string[] str_In_Id_Collection = str_Bumen_Id.Trim(',').Split(',');
//取出来后str_In_Id_Collection这个数组明明有9个值:
str_In_Id_Collection = {string[9]}
[0]"2493C2B2F1D34371BCDECDFF6D0E247D"
[1]"4BBDBA04DDBC4A58A57302374A045CBB"
[2]"2493C2B2F1D34371BCDECDFF6D0E247D"
[3]"285470122951413F96B85B0664FB63C6"
[4]"3E22476939F94425B825975ED4FB2E67"
[5]"65543DB8F97F44C8AF3D0611D37AEA3E"
[6]"8F5D9BF1B7454D73B70B6B95052D250F"
[7]"AF489E4D28E44889A0680F7BEC76BA6E"
[8]"D953F0C14DAC46C1A7F38B7A3CE24214"
//但是我运行了以下代码后,dr居然为0,郁闷!
DataRow[] dr = dt.Select("bkhzy in(‘"+str_In_Id_Collection+"’)");//其中dt是datatable,这里面有很多值,我想用in过滤一下。并且dt里面绝对有str_In_Id_Collection中的数据。因为我在sql语句中写select * from 表 where bkhzy in('2493C2B2F1D34371BCDECDFF6D0E247D','D953F0C14DAC46C1A7F38B7A3CE24214')就能查得到。
已移动
Sheng Jiang 蒋晟
Moderator
2010年2月7日 14:22
System.Data (发件人:ASP.NET 与 AJAX)
2010年2月7日 12:01
回复
|
引用
答案
0
登录进行投票
哪里有填充dt?
PS DataTable的SQL查询支持用的是正则表达式,建议在数据库中查询而不是在数据集以利用数据库的索引来加速查询。
The following is signature, not part of post
Please mark the post answered your question as the answer, and mark other helpful posts as helpful.
Visual C++ MVP
已标记为答案
杜宏宇
2010年2月8日 1:05
2010年2月7日 14:27
回复
|
引用
版主