簡體   English   中英

用linq在asp.net中更新不起作用

[英]Update in asp.net with linq not working

我有一個奇怪的問題。 我正在嘗試使用linq更新某些字段,但它不起作用。 我試圖構建該站點並對其進行調試,並顯示該函數已被調用。 我還嘗試了在文件后面的代碼中手動添加值,該方法也可以工作,但是在運行時,窗體無法將值從文本字段傳遞回去。

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

您忘記了在Page_Load中檢查它是否是回發。 您也將在回發時從數據庫重新加載...

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM