gridview点击更新后数据都给清空了 为什么啊

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string listnumber = GridView1.Rows[e.RowIndex].Cells[0].Text;
string cnumber = GridView1.Rows[e.RowIndex].Cells[1].Text;
string cknumber = GridView1.Rows[e.RowIndex].Cells[2].Text;
string lname = GridView1.Rows[e.RowIndex].Cells[3].Text;
string lphonne = GridView1.Rows[e.RowIndex].Cells[4].Text;
string ladd = GridView1.Rows[e.RowIndex].Cells[5].Text;
// DateTime ldate = DateTime.ParseExact(GridView1.Rows[e.RowIndex].Cells[6].Text, "yyyy-MM-dd HH:mm:ss", null);
string ltime = GridView1.Rows[e.RowIndex].Cells[7].Text;
string lcandle = GridView1.Rows[e.RowIndex].Cells[8].Text;
string lclaim = GridView1.Rows[e.RowIndex].Cells[9].Text;
//double lckprice = double.Parse(GridView1.Rows[e.RowIndex].Cells[10].Text);
string linputdate = GridView1.Rows[e.RowIndex].Cells[11].Text;
string luser = GridView1.Rows[e.RowIndex].Cells[12].Text;

         //dispatchinfo dis = new dispatchinfo();
         var q = from t1 in ctx.dispatchinfo
                 where t1.listnumber == listnumber && t1.cnumber==cnumber && t1.cknumber==cknumber
                 select t1;
        // var target = q.FirstOrDefault<dispatchinfo>();

         foreach (var item in q)
         {
             item.lname = lname;
             item.lphonne = lphonne;
             item.ladd = ladd;
            // item.ldate = ldate;
             item.ltime = ltime;
             item.lcandle = lcandle;
             item.lclaim = lclaim;
             //item.lckprice = lckprice;

         }

         ctx.SaveChanges();
          BindDataSource();
        // GridView1.DataBind();
    }