当我尝试使用LINQ在gridview中显示结果时,我收到此错误消息。“DataSource和DataSourceID都在'GridView1'上定义。删除一个定义。”我不知道该怎么办?这是我的代码
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();
}
答案 0 :(得分:1)
将GridView1的标记中的DataSourceID属性设置为“LinqDataSource1”。这将网格绑定到GridView之后声明的LinqDataSource。然后在ShowEmployee()中,在代码中设置DataSource属性,该属性将网格绑定到该方法中的查询。你不能两者都做。如果要在代码中绑定,请删除标记中的DataSourceID。
答案 1 :(得分:0)
如果要使用C#代码初始化数据集,请在网格的设计时清除DataSourceID属性。我更喜欢这种方法。在其他情况下,不要在运行时初始化数据集。