多表查询应用于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();

                        }

                    }

posted @   Elite_Y  阅读(549)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示