日期:2014-05-17  浏览次数:20798 次

请问,这个批量查询的刷新行数为什么没对?
static void Main()
  {
  string strConn = "server = '(local)';database=Person;integrated security = true";
  string strSQL = "SELECT * FROM 客户表;" + "SELECT * FROM 订单表"; //两条查询语句
  SqlDataAdapter da = new SqlDataAdapter(strSQL, strConn);
  da.TableMappings.Add("订单表", "新订单表"); 
  da.TableMappings.Add("客户表", "新客户表");
  DataSet ds = new DataSet();
  Console.WriteLine(da.Fill(ds));
  Console.WriteLine(ds.Tables.Count);
  Console.ReadKey(); 
  }


有两张表,客户表6行,订单表7行,一起填充到DataSet 中,为什么最后输出的添加行数不是13行,而是6行?

------解决方案--------------------
你输出的是DataSet中DataTable的个数,而不是所有表包含的行数

你可以如下输出总行数

C# code
int rows_count=ds.Tables.Cast<DataTable>().Sum(a=>a.Rows.Count);//得到总行数

------解决方案--------------------
你需要把每个表的数量相加才是总数哦
------解决方案--------------------
我很想知道你这样做的用意是什么????
------解决方案--------------------
有点多此一举的意思
------解决方案--------------------
两条查询一起输出,DataSet 只能获取到第一条查询的数据吧
------解决方案--------------------
探讨
你输出的是DataSet中DataTable的个数,而不是所有表包含的行数

你可以如下输出总行数


C# code

int rows_count=ds.Tables.Cast<DataTable>().Sum(a=>a.Rows.Count);//得到总行数

------解决方案--------------------
探讨

难道后面一句输出影响了你们?我就知道,好吧,这样:
static void Main()
{
string strConn = "server = '(local)';database=Person;integrated security = true";
string strSQL = "SELECT * FROM 客户表;" + "SELECT * FROM 订单表"; ……

------解决方案--------------------
LZ这个思路都是错的.....2个不同的表...不管它的列名相不相同,你怎么可能 在A表的后面加上B 表嘛......
只有先select A B 2个表的后,在把B中的所有行加到A上去.....
这个就得自己写代码咯
------解决方案--------------------


那你写一万个update tableName set columnName=1 where id=1 

然后去执行数据库

然后你用result接受executeQuery()

你看下你接受的result是1 还是1万!!!!!

这样的结果你都能想出!