问题描述
Dataset是由OleDbAdapter通过fill方法填充的.而OleDbAdapter.SelectCommand从CreateCommand而来,是一个sql语句.这样的话如果这个sql语句是由join几个表这样的语句的话,adapter.fill出来的dataset.tables是由这几个表的原始数据组成还是只是满足join条件的那些记录.亦或是filldataset时会自动建立dataset.relations集合?还有字段呢,如果select语句只写了2个字段而实际table有3个字段,最终到dataset里会怎么表现如selectcustomer.name,customer.gender,customer.billaddr,shoporder.deliveryaddress,salsperson.name,salesperson.genderfromcustomer,shoporder,salespersonwherecustomer.custid=shoporder.custidandshoporder.spid=salsperson.spidcustomer(custidintprimarykey,namenvarchar(30),gendernvarchar(1),billaddrnvarchar(100))CREATETABLEsalesperson(spidintPRIMARYKEY,nameNVARCHAR(30),spsurnameNVARCHAR(30),spgenderNVARCHAR(1));shoporder(ordidintprimarykey,deliveryaddressnvarchar(100),custidNUMERIC(4)NOTNULLCONSTRAINTshoporder_custidFOREIGNKEY(custid)REFERENCEScustomer(custid),spidNUMERIC(4)NOTNULLCONSTRAINTshoporder_spidFOREIGNKEY(spid)REFERENCESsalesperson(spid),)
解决方案
解决方案二:
你查出来的结果集是什么就是什么
解决方案三:
查询几个就是几个字段。你测试一下就知道了。
解决方案四:
join就是联合查询,你查出什么结果就是什么结果,如果你的字段来自不同的表,就是多表的内容
解决方案五:
你查询语句查询的字段是几个,dataset里面就是几个