2009-02-23 112 views
0

當我試圖顯示結果在使用LINQ的gridview我得到這個錯誤信息。「DataSource和DataSourceID都定義在'GridView1'。刪除一個定義。」我不知道該怎麼辦?這裏是我的代碼gridview與LINQ中的問題

protected void SelectBtn_Click(object sender, EventArgs e) 
{ 
    ShowEmployee(); 
} 
private void ShowEmployee() 
{ 
    DataClassesDataContext db = new DataClassesDataContext(); 
    var name = from E in db.Employees 
       orderby E.Age ascending 
       select E; 
    GridView1.DataSource = name; 
    GridView1.DataBind();   
} 
protected void InsertBtn_Click(object sender, EventArgs e) 
{ 
    int id = Convert.ToInt32(TxtId.Text); 
    string name = TxtName.Text; 
    string address = TxtAddress.Text; 
    int age = Convert.ToInt32(TxtAge.Text); 
    DataClassesDataContext db = new DataClassesDataContext(); 
    try 
    { 
     Employee emp = new Employee { EmployeeId = id, Name = name, Address = address, Age = age }; 
     db.Employees.InsertOnSubmit(emp); 
     db.SubmitChanges(); 
     LblMessage.Text = "Employee has been added successfully"; 
     TxtId.Text = ""; 
     TxtName.Text = ""; 
     TxtAddress.Text = ""; 
     TxtAge.Text = ""; 
     ShowEmployee(); 
    } 
    catch (Exception ee) 
    { 
     LblMessage.Text = ee.Message.ToString(); 
    }  
} 
protected void UpdateBtn_Click(object sender, EventArgs e) 
{ 
    string name=TxtName.Text; 
    string address=TxtAddress.Text; 
    DataClassesDataContext db = new DataClassesDataContext(); 
    Employee emp = db.Employees.FirstOrDefault(E => E.Name.StartsWith(name)); 
    emp.Address = address; 
    db.SubmitChanges(); 
    ShowEmployee(); 
} 
protected void DeleteBtn_Click(object sender, EventArgs e) 
{ 
    DataClassesDataContext db = new DataClassesDataContext(); 
    Employee emp = db.Employees.Single(E => E.Address.StartsWith("Delhi")); 
    db.Employees.DeleteOnSubmit(emp); 
    db.SubmitChanges(); 
    ShowEmployee(); 
} 

回答

1

您在GridView1爲 「LinqDataSource1」 的標記設置DataSourceID屬性。將網格綁定到在GridView後面聲明的LinqDataSource。然後,在ShowEmployee()中,將代碼中的DataSource屬性設置爲該代碼,該代碼將網格綁定到該方法中的查詢。你不能這樣做。如果您打算在代碼中綁定,請刪除標記中的DataSourceID。

0

如果要使用C#代碼初始化數據集,請清除網格設計時的DataSourceID屬性。我更喜歡這種方法。在其他情況下,不要在運行時初始化數據集。