为什么用.Merge合并查询不成功

bulls5988 2012-03-14 05:38:02
一张表只有 car_fee_flag = 1和car_fee_flag = 2两个查询条件不同。现在用.Merge合并两个查询条件,但是现在只能返回一个查询结果。我想要把两个查询结果并列的显示在一个表中(一、二列)

private void b_lookfor_Click(object sender, EventArgs e)
{
string sql_str = "";
DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
fee_conn fee_conn = new fee_conn();
SqlDataAdapter find_do;
if (DateTime.Compare(d_end, d_start) > 0)
{

SqlConnection conn = new SqlConnection(fee_conn.sql_conn());
sql_str = "select * from car_park_fee where car_fee_flag = 1";
find_do = new SqlDataAdapter(sql_str, conn);
find_do.Fill(dt1);

sql_str = "select * from car_park_fee where car_fee_flag = 2";
find_do = new SqlDataAdapter(sql_str, conn);
find_do.Fill(dt2);

dt1.Merge(dt2);
d_report.Visible = true;
d_report.DataSource = dt1;


}
}
...全文
246 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bulls5988 2012-03-15
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 chinajiyong 的回复:]
引用 5 楼 bulls5988 的回复:

这是什么问题呀?
C# code

DataTable dt = dt1.Merge(dt2);
无法将类型“void”隐式转换为“System.Data.DataTable”

dt1.Merge(dt2);Merge无返回值啊,
dt1.Merge(dt2);就这样,合并到了dt1中了
[/Quote]

我定义了2个 SqlDataAdapter 还是就返回一个结果呀。


sql_in = "select * from car_park_fee where car_fee_flag = 1";
find_in = new SqlDataAdapter(sql_in, conn);
find_in.Fill(dt1);

sql_str = "select * from car_park_fee where car_fee_flag = 2"
find_do = new SqlDataAdapter(sql_str, conn);
find_do.Fill(dt2);

dt1.Merge(dt2);
d_report.Visible = true;
d_report.DataSource = dt1;



bulls5988 2012-03-15
  • 打赏
  • 举报
回复
我想要这样的效果
bulls5988 2012-03-15
  • 打赏
  • 举报
回复
我是要返回两个查询,显示在一个DATAGRIDVIEW里。
EnForGrass 2012-03-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 bulls5988 的回复:]

这是什么问题呀?
C# code

DataTable dt = dt1.Merge(dt2);
无法将类型“void”隐式转换为“System.Data.DataTable”
[/Quote]
dt1.Merge(dt2);Merge无返回值啊,
dt1.Merge(dt2);就这样,合并到了dt1中了
bulls5988 2012-03-15
  • 打赏
  • 举报
回复
这是什么问题呀?

DataTable dt = dt1.Merge(dt2);
无法将类型“void”隐式转换为“System.Data.DataTable”
EnForGrass 2012-03-15
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 bulls5988 的回复:]

引用 6 楼 chinajiyong 的回复:
引用 5 楼 bulls5988 的回复:

这是什么问题呀?
C# code

DataTable dt = dt1.Merge(dt2);
无法将类型“void”隐式转换为“System.Data.DataTable”

dt1.Merge(dt2);Merge无返回值啊,
dt1.Merge(dt2);就这样,合并到了dt……
[/Quote]
你看一下dt1.Rows.Count合并之前和合并之后的值变没有
PaulyJiang 2012-03-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 rekym 的回复:]

LZ试下以下方法

datatable dt=dt1.Merge(dt2,true);
d_report.Visible = true;
d_report.DataSource = dt;

或者

datatable dt=dt1.Merge(dt2);
d_report.Visible = true;
d_report.DataSource = dt;


但是为什……
[/Quote]

123123
EnForGrass 2012-03-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 bulls5988 的回复:]
一张表只有 car_fee_flag = 1和car_fee_flag = 2两个查询条件不同。现在用.Merge合并两个查询条件,但是现在只能返回一个查询结果。我想要把两个查询结果并列的显示在一个表中(一、二列)
C# code

private void b_lookfor_Click(object sender, EventArgs e)
{
st……
[/Quote]
那是因为你用了同一个 SqlDataAdapter find_do;
你定义两个试一试
rekym 2012-03-14
  • 打赏
  • 举报
回复
再或者

datatable dt=dt1.Merge(dt2,false,miss*****.Add));
rekym 2012-03-14
  • 打赏
  • 举报
回复
LZ试下以下方法

datatable dt=dt1.Merge(dt2,true);
d_report.Visible = true;
d_report.DataSource = dt;

或者

datatable dt=dt1.Merge(dt2);
d_report.Visible = true;
d_report.DataSource = dt;


但是为什么不在一个查询中完成呢

"select * from car_park_fee where car_fee_flag = 1 or car_fee_flag = 2";

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧