проблема в gridview с LINQ - PullRequest
       10

проблема в gridview с LINQ

0 голосов
/ 23 февраля 2009

когда я пытаюсь отобразить результат в виде сетки с помощью LINQ, я получаю это сообщение об ошибке: «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();
}

Ответы [ 2 ]

1 голос
/ 23 февраля 2009

Вы устанавливаете свойство DataSourceID в разметке GridView1 на «LinqDataSource1». Это связывает сетку с LinqDataSource, объявленным сразу после GridView. Затем в ShowEmployee () вы устанавливаете свойство DataSource в коде, который привязывает сетку к запросу в этом методе. Вы не можете сделать оба. Удалите DataSourceID в разметке, если вы собираетесь связывать в коде.

0 голосов
/ 13 декабря 2010

Очистите свойство DataSourceID во время разработки вашей сетки, если вы хотите инициализировать набор данных с использованием кода C #. Я предпочитаю такой подход. В другом случае не инициализируйте набор данных во время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...