polarsoft:
网上评论一个连接只能对应于一个OdbcDataReader对象,所以把上函数修改一下即可,将嵌套的数据库连接新建数据库连接
public void ShowDirectory(OdbcCommand comm , string strId , OdbcConnection conn, int nType)
{
OdbcDataReader reader = comm.ExecuteReader ();
if(reader.HasRows )
{
while(reader.Read ())
{
if(ExistChildNode((string)reader["Id"].ToString () , conn , true))
{
Console.WriteLine (string.Format ("dir{0}=insFld({1},gFld(/"{2}/",/"" , reader["Id"] , strId , reader["DirName"]));
}
else
{
Console.WriteLine (string.Format ("dir{0}=insDoc({1},gLnk(0,/"{2}/",/"" , reader["Id"] , strId , reader["DirName"]));
}
Console.WriteLine ("main.asp?DicType=Dir");
Console.WriteLine (string.Format ("&Id={0}/"))/r/n" , reader["Id"]));
string strSQL;
strSQL = string.Format ("SELECT * FROM FILE_DIRECTORY WHERE PID={0}" , reader["Id"]);
OdbcConnection conn2 = new OdbcConnection ("DSN=AMGDM3_SQL;uid=sa;pwd=;");
conn2.Open ();
OdbcDataAdapter adapter2 = new OdbcDataAdapter (strSQL , conn2);
OdbcCommand command = adapter2.SelectCommand ;
ShowDirectory(command , string.Format ("dir{0}" , reader["Id"]) , conn2 , nType);
}
}
reader.Close ();