现在是datagirdview里显示数据了,我想双击datagirdview里的那一条数据之后,详细的数据在listview里显示,但是我双击datagirdview之后,上面的datagirdview里数据没有了,下面的listview里也没数据。这是怎么回事啊!!

解决方案 »

  1.   


      private void dataGridView4_CellContentClick(object sender, DataGridViewCellEventArgs e)
            {
                DataTable myDt = new DataTable();
                SqlConnection myConn = new SqlConnection(@"Data Source=LIGD\TESTSQLSVR16;Initial Catalog=Assistant;User ID=test;Password=test2005");
                SqlCommand myComm = myConn.CreateCommand();            string strSql = "SELECT B.ListNumber as 明细序号, B.Noo as 序号, A.Number as 采购计划编号, A.departmentid as 部门编号, B.ProductId as 金蝶内码 ,A.FinishCircs as 关闭 ,B.FinishCircsDate as 关闭日期," +
                             " B.productnumber as 物料编码, B.ProductName as 物料名称, B.ProductModel as 物料规格型号, B.Unit as 计量单位, B.MontDosage as 上月领料, " +
                           "B.StorageNumber as 库存, B.PlanNumber as 计划采购数量, B.FactNumber as 实际采购数量, B.VoteDate as 采购日期, B.Consult_UnitPrice as 参考单价, B.Consult_Money_Total as 参考金额, B.Note AS Expr2, B.GiveOff as 是否发货, " +
                           "B.shenbaorenid as 申报人编号, B.FinishCircs AS Expr3, A.StockPlanTypeId as 采购计划类型编号, A.FinishDate as 完成时间, A.linkstatus as 连接状态, A.TableHumanId as 编制人, A.StockPlanDate as 编制日期 , " +
                           "A.StockPlanId as 计划名称 , A.SellFormId as 销售渠道编号 , A.qualityid as 品质编号, A.Note as 备注 " +
                           "FROM StockPlan AS A LEFT OUTER JOIN " +
                           "StockPlanInfo AS B ON A.Number = B.Number " +
                           "WHERE (A.Number = " + int.Parse(((object[])this.treeView1.SelectedNode.Tag)[0].ToString()) + ")";
                myComm.CommandText = strSql;
                try
                {
                    myConn.Open();
                    SqlDataReader dataReader = myComm.ExecuteReader();                listView4.Items.Clear();
                    while (dataReader.Read())
                    {
                        ListViewItem list = new ListViewItem(dataReader["序号"].ToString());
                        listView4.Items.Add(list);
                        list.SubItems.AddRange(new string[] { dataReader["计划名称"].ToString(), dataReader["物料编码"].ToString() });                }
                    dataReader.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    return;
                }
                finally
                {
                    myComm.Dispose();
                    myConn.Close();
                    myConn.Dispose();
                }
                //this.dataGridView4.DataSource = myDt;
                this.addPizhu(int.Parse(((object[])this.treeView1.SelectedNode.Tag)[0].ToString()), 1, 0);//添加批注
                hqcl(int.Parse(((object[])this.treeView1.SelectedNode.Tag)[0].ToString()), 1);//处理
                auditing(int.Parse(((object[])this.treeView1.SelectedNode.Tag)[0].ToString()));//审核
                stockPlanNumber = int.Parse(((object[])this.treeView1.SelectedNode.Tag)[0].ToString());//采购计划编号
            }
      

  2.   

    你的事件就不对嘛,不是Doubleclick啊,你是CellContentClick。
      

  3.   

    看你的代码,你好像是从treeView的节点取得相关查询条件。那又跟DataGridView的行有什么关系?是不是你这里面的关系没有理清啊?你是不是左面一个树,右面上面显示当前节点的主信息,下面显示明细?这个跟节点有关了,是在节点AfterSelected事件里写东西。
      

  4.   

    以前做WEB的时候也遇到过这样的问题……