当前位置:编程学习 > C#/ASP.NET >>

SqlDataSource+Datalist,实现编辑,怎么更新int和demical类型的值


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class UserControl_Books : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    //编辑
    protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
    {
        DataList1.EditItemIndex = e.Item.ItemIndex;
        DataList1.DataBind();
    }
    //取消
    protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)
    {
        DataList1.EditItemIndex = -1;
        DataList1.DataBind();
    }
    //更新
  protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
    {
        Int32 ClassId;
        if (((DropDownList)e.Item.FindControl("ClassName")).SelectedValue == "0")
        {
            ClassId = int.Parse(((TextBox)e.Item.FindControl("ClassId")).ToString());
        }
        else
        {
            ClassId = int.Parse(
                ((DropDownList)e.Item.FindControl("ClassName")).SelectedValue);
        }
        String BookName =
     ((TextBox)e.Item.FindControl("BookName")).ToString();
        String Author =
     ((TextBox)e.Item.FindControl("Author")).ToString();
        String Publish =
     ((TextBox)e.Item.FindControl("Publish")).ToString();
        Decimal Price = Decimal.
     ((TextBox)e.Item.FindControl("Price")).ToString();
        String Image =
     ((TextBox)e.Item.FindControl("Image")).ToString();
        Int32 Qty = int.Parse(
     ((TextBox)e.Item.FindControl("Qty")).ToString());
        Int32 PageNum = int.Parse(
     ((TextBox)e.Item.FindControl("PageNum")).ToString());
        String BinDing =
     ((TextBox)e.Item.FindControl("BinDing")).ToString();
        Int32 Format = int.Parse(
     ((TextBox)e.Item.FindControl("Format")).ToString());
        String ISBN =
    ((TextBox)e.Item.FindControl("ISBN")).ToString();
        String Descn =
    ((TextBox)e.Item.FindControl("Descn")).ToString();
        String Content =
    ((TextBox)e.Item.FindControl("Content")).ToString();
        String BookId =
     DataList1.DataKeys[e.Item.ItemIndex].ToString();

        SqlDataSource2.UpdateParameters["ClassId"].DefaultValue
    = ClassId;
        SqlDataSource2.UpdateParameters["BookName"].DefaultValue
            = BookName;
        SqlDataSource2.UpdateParameters["Author"].DefaultValue
            = Author;
        SqlDataSource2.UpdateParameters["Publish"].DefaultValue
            = Publish;
        SqlDataSource2.UpdateParameters["Price"].DefaultValue
            = Price;
        SqlDataSource2.UpdateParameters["Image"].DefaultValue
            = Image;
        SqlDataSource2.UpdateParameters["Qty"].DefaultValue
            = Qty;
        SqlDataSource2.UpdateParameters["PageNum"].DefaultValue
            = PageNum;
        SqlDataSource2.UpdateParameters["BinDing"].DefaultValue
            = BinDing;
        SqlDataSource2.UpdateParameters["Format"].DefaultValue
            = Format;
        SqlDataSource2.UpdateParameters["ISBN"].DefaultValue
            = ISBN;
        SqlDataSource2.UpdateParameters["Descn"].DefaultValue
            = Descn;
        SqlDataSource2.UpdateParameters["Content"].DefaultValue
            = Content;
        SqlDataSource2.UpdateParameters["BookId"].DefaultValue
            = BookId;

        SqlDataSource2.Update();
        DataList1.EditItemIndex = -1;
        DataList1.DataBind();
    }
}
--------------------编程问答-------------------- 这么多 看得就头疼 你还是用linq吧 --------------------编程问答-------------------- 改了一下,把UpdateCommand里面的类型全部改成String,在SqlDataSource的更新参数写对应的数据类型,可是更新的时候显示“输入字符串的格式不正确”
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:BookShopConnectionString %>"
    SelectCommand="SELECT * FROM [Book-Class] WHERE ([BookId] = @BookId)" 
    UpdateCommand="UPDATE [Book] SET [BookName] = 
                 @BookName, [ClassId] = @ClassId,[Author] = @Author,
                 [Publish] = @Publish,[Price] = @Price,[Image] = @Image,
                 [Qty] = @Qty,[PageNum] = @PageNum,[BinDing] = @BinDing,[Format] = @Format,
                 [ISBN] = @ISBN,[Descn] = @Descn,[Content] = @Content
                 WHERE [BookId] = @BookId">
    <SelectParameters>
        <asp:ControlParameter ControlID="GridView1" Name="BookId" PropertyName="SelectedValue"
            Type="Int32" />
    </SelectParameters>
    <UpdateParameters>
        <asp:Parameter Name="BookName" Type="String" />
        <asp:Parameter Name="ClassId" Type="Int32" />
        <asp:Parameter Name="Author" Type="String" />
        <asp:Parameter Name="Publish" Type="String" />
        <asp:Parameter Name="Price" Type="Decimal" />
        <asp:Parameter Name="Image" Type="String" />
        <asp:Parameter Name="Qty" Type="Int32" />
        <asp:Parameter Name="PageNum" Type="Int32" />
        <asp:Parameter Name="BinDing" Type="String" />
        <asp:Parameter Name="Format" Type="Int32" />
        <asp:Parameter Name="ISBN" Type="String" />
        <asp:Parameter Name="Descn" Type="String" />
        <asp:Parameter Name="Content" Type="String" />
        <asp:Parameter Name="BookId" Type="Int32" />
    </UpdateParameters>
</asp:SqlDataSource>
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,