2009-03-30 17 views
0

私は奇妙な問題があります。私はlinqを使用していくつかのフィールドを更新しようとしており、それは動作していません。私は、サイトを構築し、それが機能していることを示し、機能を呼び出すデバッグしようとしました。私は手動でファイルのコードの後ろに値を追加しようとしたも動作しますが、何らかの形で実行時にフォームがテキストフィールドから戻って値を渡しません。linqが動作していないasp.netのアップデート

<%@ 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> 

コード:

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(); 
    } 
} 

答えて

1

あなたはそれがPage_Loadの中ポストバックであるかどうかをチェックするのを忘れました。 DBからポストバックでリロードします。

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

ロック!ありがとう –

関連する問題