多表查询应用于Datatable
this.dataGridView1.Columns.Clear();
dt = myUser.m_SelectAll(this.dtpStartDate.Text, this.dtpStopDate.Text);//查出所有坐席账号
dcFrist_name.ColumnName = "姓名";
dcUser_name.ColumnName = "坐席员工号";
dcNews.ColumnName = "新闻总数";
dcComplaints.ColumnName = "投诉总数";
dcNewBack.ColumnName = "报道回音总数";
dcCount.ColumnName = "总数";
dtt.Columns.Add(dcUser_name);
dtt.Columns.Add(dcFrist_name);
dtt.Columns.Add(dcNews);
dtt.Columns.Add(dcComplaints);
dtt.Columns.Add(dcNewBack);
dtt.Columns.Add(dcCount);
DataRow dr = dtt.NewRow();
dtt.Rows.Add(dr);
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
dtt.Rows[i]["坐席员工号"] = dt.Rows[i]["user_name"].ToString();
dtt.Rows[i]["姓名"] = dt.Rows[i]["first_name"].ToString();
dtt.ImportRow(dt.Rows[i]);
}
}
DataTable dtNews = myNews.m_SelectAllCount(this.dtpStartDate.Text, this.dtpStopDate.Text);//获取线索数量的数量、用户、 名字
if (dtNews.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dtNews.Rows.Count; j++)
{
if (dt.Rows[i]["user_name"].ToString() == dtNews.Rows[j]["user_name"].ToString())
{
dtt.Rows[i]["新闻总数"] = dtNews.Rows[j]["count(News)"].ToString();
break;
}
}
}
}
DataTable dtComplaints = myComplaints.m_SelectAllCount(this.dtpStartDate.Text, this.dtpStopDate.Text);
if (dtComplaints.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dtComplaints.Rows.Count; j++)
{
if (dt.Rows[i]["user_name"].ToString() == dtComplaints.Rows[j]["user_name"].ToString())
{
dtt.Rows[i]["投诉总数"] = dtComplaints.Rows[j]["count(description)"].ToString();
break;
}
}
}
}
DataTable dtNewsBack = myNewsBack.m_SelectAllCount(this.dtpStartDate.Text, this.dtpStopDate.Text);
if (dtNewsBack.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dtNewsBack.Rows.Count; j++)
{
if (dt.Rows[i]["user_name"].ToString() == dtNewsBack.Rows[j]["user_name"].ToString())
{
dtt.Rows[i]["报道回音总数"] = dtNewsBack.Rows[j]["count(description)"].ToString();
break;
}
}
}
}
if (dtt.Rows.Count > 0)
{
dtt.Rows.RemoveAt(dtt.Rows.Count - 1);
for (int i = 0; i < dtt.Rows.Count; i++)
{
for (int j = 0; j < dtt.Columns.Count; j++)
{
if (dtt.Rows[i][j].ToString() == "")
{
dtt.Rows[i][j] = 0;
}
}
}
for (int i = 0; i < dt.Rows.Count; i++)
{
string NewsCount = dtt.Rows[i]["新闻总数"].ToString().Trim();
string Comoplaints = dtt.Rows[i]["投诉总数"].ToString().Trim();
string NewBack = dtt.Rows[i]["报道回音总数"].ToString().Trim();
dtt.Rows[i]["总数"] = (int.Parse(NewsCount) + int.Parse(Comoplaints) + int.Parse(NewBack)).ToString().Trim();
}
}
出处:http://www.cnblogs.com/yhyjy/
新浪微博:http://weibo.com/u/2709913775
世上本无垃圾,所谓垃圾是你放错了地方!
每天积累一点点,那么理想便会距离我们越来越近!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?