关于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,获取值后再去查询数据库