2009-03-30 12 views
0

Ich habe ein seltsames Problem. Ich versuche, einige Felder mit linq zu aktualisieren, und es funktioniert nicht. Ich habe versucht, die Site zu erstellen und zu debuggen, die funktioniert und zeigt, dass die Funktion aufgerufen wird. Ich habe auch versucht, manuell die Werte im Code hinter der Datei hinzuzufügen, und das funktioniert auch, aber irgendwie zur Laufzeit übergibt das Formular die Werte nicht aus den Textfeldern.Update in asp.net mit linq funktioniert nicht

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AddEditBook1.aspx.cs" MasterPageFile="../AdminMaster.master" Inherits="AdminPanel_AddEditBook1" Title="Add or Edit Book Page"%> 

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPagePlaceHolder1" Runat="Server"> 
<div class="content"> 
    <div class="titleMain">Library -> Add or Edit Book Page 
    </div> 
    <h1><span></span>Add or Edit Book Page</h1> 

    <div class="contentpage" > 
     <p>On this page you can Add or Edit Book Page</p> 

     <asp:Label ID="AddEditBookMsg" runat="server" Visible="false" /> 

      <table width="650" class="table" cellspacing="15"> 
       <tr> 
        <td>Book ID</td> 
        <td><asp:Label ID="BookId" runat="server" /></td> 
       </tr> 
       <tr> 
        <td>Book name</td> 
        <td><asp:TextBox ID="BookName" runat="server" /></td> 
       </tr> 
       <tr> 
        <td>Author</td> 
        <td><asp:TextBox ID="BookAuthor" runat="server" Text="" /></td> 
       </tr> 

Code:

using System; 
using System.Collections; 
using System.Configuration; 
using System.Data; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Xml.Linq; 

public partial class AdminPanel_AddEditBook1 : System.Web.UI.Page 
{ 
    // book represents 3 tables 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     AddEditBookMsg.Visible = false; 
     if (Request["book_id"] != null) 
     { 
      GetExistingBook(); 
     } 
    } 

    public void GetExistingBook() 
    { 
     BooksDataContext book = new BooksDataContext(); 
     int book_id = Int32.Parse(Request["book_id"].ToString()); 
     var bookexist = book.books.Single(b => b.book_id == book_id); 
     var bookDDL = from c in book.categories 
         select c; 
     var bookexistdesc = book.bookdescs.Single(bds => bds.book_id == book_id); 
     if (bookexist.book_id == book_id) 
     { 
      BookName.Text = bookexist.book_name; 
      BookAuthor.Text = bookexist.book_author; 
      BookShortDesc.Text = bookexist.book_short_desc; 
      BookLongDesc.Text = bookexistdesc.book_long_desc; 
      BookImg.Text = bookexist.book_img; 
      BookSqu.Text = bookexist.book_squ; 
      BookArrived.Text = bookexist.book_arrived.ToString(); 
      BookQty.Text = bookexist.book_qty.ToString(); 

      if (!Page.IsPostBack) 
      { 
       CaID.DataSource = bookDDL; 
       CaID.DataTextField = "ca_name"; 
       CaID.DataValueField = "ca_id"; 
       CaID.DataBind(); 
      } 
     } 
    } 

    protected void update_Click(object sender, EventArgs e) 
    { 
     BooksDataContext book = new BooksDataContext(); 

     int book_id = Int32.Parse(Request["book_id"].ToString()); 
     book bookexist2 = book.books.Single(b1 => b1.book_id == book_id); 
     bookdesc bookexistdesc2 = book.bookdescs.Single(bds1 => bds1.book_id == book_id); 


     bookexist2.book_name = BookName.Text; 
     bookexist2.book_author = BookAuthor.Text.ToString(); 
     bookexist2.book_short_desc = BookShortDesc.Text; 

     bookexist2.book_img = BookImg.Text; 
     bookexist2.book_squ = BookSqu.Text; 
     bookexist2.book_arrived = DateTime.Parse(BookArrived.Text); 
     bookexist2.book_qty = Int32.Parse(BookQty.Text); 

     bookexistdesc2.book_long_desc = BookLongDesc.Text; 
     book.SubmitChanges(); 
    } 
} 

Antwort

1

Sie haben vergessen, zu überprüfen, ob es sich um eine Postbacks in Page_Load ist. Sie werden von der Datenbank auf Postback auch neu laden ...

if (!IsPostback()) 
{ 
    if (Request["book_id"] != null) 
    { 
    GetExistingBook(); 
    } 
} 
+0

Sie rocken! Vielen Dank –