2015-05-03 5 views
1

Итак, я пытаюсь обновить строку в базе данных, используя текст из текстового поля, используя формы .net.Сохраните изменения textbox.text, используя сущность в .net-формах

В pageload Я загружаю значение и присваиваю его текстовому свойству текстового поля. Затем я разрешаю пользователю изменять текст и нажимать кнопку для загрузки, однако значение в базе данных не изменяется.

Если я изменил значение holter.companyName на статическую строку, обновленную базу данных. Также, если я не присваиваю значение companyNameTB.text в pageloads, кнопка обновления работает так, как ожидалось.

Любые идеи?

protected void Page_Load(object sender, EventArgs e) 
    { 
     PortalEntities db = new PortalEntities(); 
     var holterQuery = from holt in db.Holters 
          where holt.Id == 1 
          select holt; 

     Holter holter = holterQuery.Single(); 

     string companyName = holter.CompanyName; 
     CompanyNameTB.Text = companyName; 

    } 

    protected void Button1_Click(object sender, EventArgs e) 
    { 
     PortalEntities db = new PortalEntities(); 
     var holterQuery = from holt in db.Holters 
          where holt.Id == 1 
          select holt; 


     Holter holter = holterQuery.Single(); 
     holter.CompanyName = CompanyNameTB.Text; 
     holter.Id = 1; 


     db.SaveChanges(); 



    } 

ответ

0

ли это в методе Page_Load, в противном случае значение в TextBox обновляется к исходному при запросе любой страницы (так пост обратно запроса тоже)

if(!Page.IsPostBack) 
{ 
    PortalEntities db = new PortalEntities(); 
    var holterQuery = from holt in db.Holters 
         where holt.Id == 1 
         select holt; 

    Holter holter = holterQuery.Single(); 

    string companyName = holter.CompanyName; 
    CompanyNameTB.Text = companyName; 
} 

И вам не нужна эта линия является метод Button1_Click

holter.Id = 1; 
+0

Работал лечить, Cheers! –

1

Похоже, что метод Page_Load переписывает текстовое поле при отправке формы. Поместите его внутри условного оператора, чтобы проверить, если запрос пост обратно, например, так:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostback) 
    { 
     PortalEntities db = new PortalEntities(); 
     var holterQuery = from holt in db.Holters 
          where holt.Id == 1 
          select holt; 

     Holter holter = holterQuery.Single(); 

     string companyName = holter.CompanyName; 
     CompanyNameTB.Text = companyName; 
    } 
} 

Это должно позволить текстовое поле, чтобы быть заполнены из базы данных, когда страница первоначально загружается, но тогда, когда пользователь отправляет форму, которую раздел кода должен быть пропущен, чтобы новое значение в текстовом поле не было перезаписано.

+0

Отлично! Thankyou –

Смежные вопросы