读书人

关于Ado.net的一个有关问题

发布时间: 2012-02-01 16:58:19 作者: rapoo

关于Ado.net的一个问题
现在有2张表,表1和表2 ,首先要打开表1,然后对表1进行循环,根据表1中某个字段的值到表2中查询相关的记录,在ADO中,一般用
rs.open(表1....)
do until rs.eof
rs1.open( 'select * from 表2 where XXX= '+rs.fields(X).value,.....)
.......
rs1.close
loop


现在用ado.net,发现这种方式不行了,
建立了一个sqlconnection,一个command,二个Sqldatareader
然后

....连接数据库
reader = m_command.executereader()
....

while(reader.read())
{
m_command.commandtext= "select * from 表2 where XXX= "+reader[0].tostrign()
reader2 = m_command.executereader() <- 此句报错

........
}
}

好像一个连接在同一时刻只能有一个reader是打开的,那像上面的情况怎么处理呢?

[解决办法]
可以换用DataSet 和 DataTable

[解决办法]
贴全一点 看不出来这样

感觉应该是reader2 = m_command.ExeNoQuery()
[解决办法]
一个连接只能打开一个SqlDataReader , 其独占连接
楼主先把数据填充到一个DataTable,然后循环DataTable,获取值后再去查询数据库

读书人网 >asp.net

热点推荐