| 发表于:2007-02-15 15:17:25 楼主 |
public contractinfo getcontractbyno(string contractno) { contractinfo contractinfo = new contractinfo(); oledbcommand select = new oledbcommand(); string cmd = "select contracts.*, customers.customername from contracts, customers " + "where contracts.customerno = customers.customerno and contracts.contractno = ' " + contractno + " '; "; try { select.commandtext=cmd; select.connection=conn; conn.open(); oledbdatareader datareader=select.EXECutereader(); if(datareader.read()) { contractinfo.setcontractno(datareader.getstring(0)); contractinfo.setcontractname(datareader.getstring(2)); contractinfo.setcustomerno(datareader.getstring(3)); contractinfo.setbookdate(convert.todatetime(datareader[4])); contractinfo.setaddress(datareader.getstring(5)); contractinfo.setcomtype(datareader.getstring(6)); contractinfo.setphone(datareader.getstring(7)); contractinfo.setfax(datareader.getstring(8)); contractinfo.setaccountno(datareader.getstring(9)); contractinfo.setaccountname(datareader.getstring(10)); contractinfo.setbank(datareader.getstring(11)); contractinfo.settaxno(datareader.getstring(12)); contractinfo.setcharge(datareader.getstring(13)); contractinfo.setsaletype(convert.todouble(datareader[14])); contractinfo.setamount(convert.todouble(datareader[15])); contractinfo.setpaymenttype(datareader.getstring(16)); contractinfo.setpaidamount(convert.todouble(datareader[17])); contractinfo.setnotpaidamount(convert.todouble(datareader[18])); contractinfo.setcontractstatus(convert.todouble(datareader[19])); contractinfo.setnextpaydate(convert.todatetime(datareader[20])); contractinfo.setprofit(convert.todouble(datareader[21])); contractinfo.setcost(convert.todouble(datareader[22])); contractinfo.setprocessor(datareader.getstring(23)); contractinfo.setapproval(datareader.getstring(24)); contractinfo.setupdatedate(convert.todatetime(datareader[25])); contractinfo.setupdateuser(datareader.getstring(26)); contractinfo.setcustomername(datareader.getstring(27)); } conn.close(); } catch(exception e) { throw e; } finally { select.connection.dispose(); select.dispose(); conn.close(); } return contractinfo; } 单步调试的时候总是在执行到datareader=select.EXECutereader();时候抛出一个异常:EXECutereader 需要打开的并且可用的连接。该连接的当前状态是 open, fetching。真是不明白是怎么回事了!谢谢告知啊~~ |
|
|
|
|