Listview不使用下拉列表值更新数据库

时间:2015-03-16 10:37:51

标签: sql asp.net listview dropdownlistfor

当我从下拉列表中编辑Listview中的项目并按标准更新按钮时,数据不会更新。

这是我数据库的结构。

CREATE TABLE [dbo].[Assets] 
         ( 
                      [AssetID] [INT] IDENTITY(20000,1) PRIMARY KEY NOT NULL, 
                      [Asset]     NVARCHAR(20) NOT NULL, 
                      [Symbol]    NVARCHAR(20) NULL, 
                      [AssetType] NVARCHAR(20) CONSTRAINT chk_asttype CHECK (assettype IN ('Currencies',
                                                                                           'Indices',
                                                                                           'Stocks',
                                                                                           'Commodities')) NOT NULL,CREATE TABLE[dbo].[times] 
                      ( 
                                   timeid [INT] IDENTITY(20010,1) PRIMARY KEY NOT NULL, 
                                   timevalues NVARCHAR (15) DEFAULT '15 Minutes' NOT NULL
                      )CREATE TABLE [dbo].[results] 
                      ( 
                                   [resultid] [INT] IDENTITY(20016,1) PRIMARY KEY NOT NULL,
                                   [result] [NVARCHAR](10)CONSTRAINT chk_result CHECK (result IN ('Won', 
                                                                                                  'Lost',
                                                                                                  'Draw',
                                                                                                  'Prepare',
                                                                                                  'New Signal'))
                      )CREATE TABLE [dbo].[binarysignals] 
                      ( 
                                   [signalid] [INT] IDENTITY(30000,1) PRIMARY KEY NOT NULL,
                                   [assetid] [INT]CONSTRAINT fk_binastid FOREIGN KEY REFERENCES assets(assetid) NOT NULL,
                                   [signaldate][DATE] DEFAULT Getdate() NOT NULL, 
                                   [direction][VARCHAR](4) CONSTRAINT chk_bindirection CHECK (direction IN ('Call', 
                                                                                                            'Put')) DEFAULT NULL,
                                   [strikeprice] [SMALLMONEY] DEFAULT NULL, 
                                   [expiryprice] [SMALLMONEY] DEFAULT NULL, 
                                   [starttime][SMALLDATETIME] DEFAULT NULL, 
                                   [expirytime][NVARCHAR](20) DEFAULT NULL, 
                                   [resultid] [INT]CONSTRAINT fk_binresid FOREIGN KEY REFERENCES results(resultid) DEFAULT 20016 NOT NULL,
                                   [lastupdatedtime][SMALLDATETIME] DEFAULT Getdate() NOT NULL, 
                      )

这是我的ASP.Net标记代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>

<script src="Scripts/jquery-1.9.1.min.js"></script>

$(document).ready(function () {
        ShowTime();
    });
    function ShowTime() {
        var dt = new Date();
        document.getElementById("lblTime").innerHTML = dt.toLocaleTimeString();
        window.setTimeout("ShowTime()", 1000);
    }

<div>
        <label id="lblTime" style="font-weight: bold"></label>
        <br />
        <asp:SqlDataSource ID="BO" runat="server" ConnectionString="<%$                  ConnectionStrings:Signals2UConnectionString %>"
            DeleteCommand="DELETE FROM [BinarySignals] WHERE [SignalID] = @SignalID" InsertCommand="INSERT INTO [BinarySignals] ([AssetID]) VALUES (@AssetID)" SelectCommand="SELECT [SignalID], BinarySignals.AssetID ,[Asset], [SignalDate], [Direction], [StrikePrice], [ExpiryPrice], [StartTime], [ExpiryTime], [Result],Results.ResultID FROM [BinarySignals] 
INNER JOIN  Assets On BinarySignals.AssetID=Assets.AssetID
INNER JOIN  Results On BinarySignals.ResultID=Results.ResultID
ORDER BY BinarySignals.AssetID DESC"
            UpdateCommand="UPDATE [BinarySignals] SET [AssetID] = @AssetID, [SignalDate] = @SignalDate, [Direction] = @Direction, [StrikePrice] = @StrikePrice, [ExpiryPrice] = @ExpiryPrice, [StartTime] = @StartTime, [ExpiryTime] = @ExpiryTime, [ResultID] = @ResultID WHERE [SignalID] = @SignalID">
            <DeleteParameters>
                <asp:Parameter Name="SignalID" Type="Int32" />
            </DeleteParameters>
            <InsertParameters>
                <asp:Parameter Name="AssetID" Type="Int32" />
            </InsertParameters>
            <UpdateParameters>
                <asp:Parameter Name="AssetID" Type="Int32" />
                <asp:Parameter DbType="Date" Name="SignalDate" />
                <asp:Parameter Name="Direction" Type="String" />
                <asp:Parameter Name="StrikePrice" Type="Decimal" />
                <asp:Parameter Name="ExpiryPrice" Type="Decimal" />
                <asp:Parameter Name="StartTime" Type="DateTime" />
                <asp:Parameter Name="ExpiryTime" Type="String" />
                <asp:Parameter Name="ResultID" Type="Int32" />
                <asp:Parameter Name="SignalID" Type="Int32" />
            </UpdateParameters>
        </asp:SqlDataSource>

        <asp:SqlDataSource ID="Results" runat="server" ConnectionString="<%$ ConnectionStrings:Signals2UConnectionString %>" SelectCommand="SELECT [Result], [ResultID] FROM [Results]"></asp:SqlDataSource>

        <asp:ListView ID="ListView1" runat="server" DataSourceID="BO" GroupItemCount="3" InsertItemPosition="LastItem">
            <AlternatingItemTemplate>
                <td id="Td1" runat="server" style="">SignalID:
                <asp:Label ID="SignalIDLabel" runat="server" Text='<%# Eval("SignalID") %>' />
                    <br />
                    Asset:
                <asp:Label ID="AssetLabel" runat="server" Text='<%# Eval("Asset") %>' />
                    <br />
                    SignalDate:
                <asp:Label ID="SignalDateLabel" runat="server" Text='<%# Eval("SignalDate","{0:yyyy-MM-dd}") %>' />
                    <br />
                    Direction:
                <asp:Label ID="DirectionLabel" runat="server" Text='<%# Eval("Direction") %>' />
                    <br />
                    StrikePrice:
                <asp:Label ID="StrikePriceLabel" runat="server" Text='<%# Eval("StrikePrice") %>' />
                    <br />
                    ExpiryPrice:
                <asp:Label ID="ExpiryPriceLabel" runat="server" Text='<%# Eval("ExpiryPrice") %>' />
                    <br />
                    StartTime:
                <asp:Label ID="StartTimeLabel" runat="server" Text='<%# Eval("StartTime") %>' />
                    <br />
                    ExpiryTime:
                <asp:Label ID="ExpiryTimeLabel" runat="server" Text='<%# Eval("ExpiryTime") %>' />
                    <br />
                    Result:
                <asp:Label ID="ResultLabel" runat="server" Text='<%# Eval("Result") %>' />
                    <br />
                    ResultID:
                <asp:Label ID="ResultIDLabel" runat="server" Text='<%# Eval("ResultID") %>' />
                    <br />
                    <asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="Edit" />
                    <br />
                </td>
            </AlternatingItemTemplate>
            <EditItemTemplate>
                <td id="Td2" runat="server" style="">SignalID:

                Asset:
              <asp:TextBox ID="AssetTextBox" runat="server" ReadOnly="true" Text='<%# Bind("Asset") %>' />


                    <br />
                    SignalDate:
                <asp:TextBox ID="SignalDateTextBox" runat="server" Text='<%# Bind("SignalDate") %>' />

                    <br />
                    Direction:
                <asp:TextBox ID="DirectionTextBox" runat="server" Text='<%# Bind("Direction") %>' />
                    <br />
                    StrikePrice:
                <asp:TextBox ID="StrikePriceTextBox" runat="server" Text='<%# Bind("StrikePrice") %>' />
                    <br />
                    ExpiryPrice:
                <asp:TextBox ID="ExpiryPriceTextBox" runat="server" Text='<%# Bind("ExpiryPrice") %>' />
                    <br />
                    StartTime:
                <asp:TextBox ID="StartTimeTextBox" runat="server" Text='<%# Bind("StartTime") %>' />
                    <br />
                    ExpiryTime:
                <asp:TextBox ID="ExpiryTimeTextBox" runat="server" Text='<%# Bind("ExpiryTime") %>' />
                    <br />
                    Result:
               <asp:DropDownList ID="DropDownList4" runat="server" DataSourceID="Outcome" DataTextField="Result" DataValueField="ResultID" SelectedValue='<%#Bind("ResultID") %>'></asp:DropDownList>
                    <br />

                    <asp:Button ID="UpdateButton" runat="server" CommandName="Update" Text="Update" />
                    <br />
                    <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Cancel" />
                    <br />
                </td>
            </EditItemTemplate>
            <EmptyDataTemplate>
                <table id="Table1" runat="server" style="">
                    <tr>
                        <td>No data was returned.</td>
                    </tr>
                </table>
            </EmptyDataTemplate>
            <EmptyItemTemplate>
                <td id="Td3" runat="server" />
            </EmptyItemTemplate>
            <GroupTemplate>
                <tr id="itemPlaceholderContainer" runat="server">
                    <td id="itemPlaceholder" runat="server"></td>
                </tr>
            </GroupTemplate>
            <InsertItemTemplate>
                <td id="Td4" runat="server" style="">Asset:
<asp:DropDownList ID="DropDownList3" runat="server" DataSourceID="Assets" DataTextField="Asset" DataValueField="AssetID" AutoPostBack="True" SelectedValue='<%# Bind("AssetID") %>'>
</asp:DropDownList>
                    <br />
                    SignalDate:
                <asp:Label ID="SignalDateLabel" runat="server" Text='<%# Bind("SignalDate") %>' />
                    <br />
                    Direction:
                <asp:TextBox ID="DirectionTextBox" runat="server" Text='<%# Bind("Direction") %>' />
                    <br />
                    StrikePrice:
                <asp:TextBox ID="StrikePriceTextBox" runat="server" Text='<%# Bind("StrikePrice") %>' />
                    <br />
                    ExpiryPrice:
                <asp:TextBox ID="ExpiryPriceTextBox" runat="server" Text='<%# Bind("ExpiryPrice") %>' />
                    <br />
                    StartTime:
                <asp:TextBox ID="StartTimeTextBox" runat="server" Text='<%# Bind("StartTime") %>' />
                    <br />
                    ExpiryTime:
                <asp:TextBox ID="ExpiryTimeTextBox" runat="server" Text='<%# Bind("ExpiryTime") %>' />
                    <br />
                    Result:
                <asp:TextBox ID="ResultTextBox" runat="server" Text='<%# Bind("Result") %>' />
                    <br />
                    <asp:Button ID="InsertButton" runat="server" CommandName="Insert" Text="Insert" />
                    <br />
                    <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="Clear" />
                    <br />
                </td>
            </InsertItemTemplate>
            <ItemTemplate>
                <td id="Td5" runat="server" style="">SignalID:
                <asp:Label ID="SignalIDLabel" runat="server" Text='<%# Eval("SignalID") %>' />
                    <br />
                    Asset:
                <asp:Label ID="AssetLabel" runat="server" Text='<%# Eval("Asset") %>' />
                    <br />
                    SignalDate:
               <asp:Label ID="SignalDateLabel" runat="server" Text='<%# Eval("SignalDate","{0:yyyy-MM-dd}") %>' />
                    <br />
                    Direction:
                <asp:Label ID="DirectionLabel" runat="server" Text='<%# Eval("Direction") %>' />
                    <br />
                    StrikePrice:
                <asp:Label ID="StrikePriceLabel" runat="server" Text='<%# Eval("StrikePrice") %>' />
                    <br />
                    ExpiryPrice:
                <asp:Label ID="ExpiryPriceLabel" runat="server" Text='<%# Eval("ExpiryPrice") %>' />
                    <br />
                    StartTime:
                <asp:Label ID="StartTimeLabel" runat="server" Text='<%# Eval("StartTime") %>' />
                    <br />
                    ExpiryTime:
                <asp:Label ID="ExpiryTimeLabel" runat="server" Text='<%# Eval("ExpiryTime") %>' />
                    <br />
                    Result:
                <asp:Label ID="ResultLabel" runat="server" Text='<%# Eval("Result") %>' />
                    <br />
                    ResultID:
                <asp:Label ID="ResultIDLabel" runat="server" Text='<%#Eval("ResultID") %>' />

                    <br />
                    <asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="Edit" />
                    <br />
                </td>
            </ItemTemplate>
            <LayoutTemplate>
                <table id="Table2" runat="server">
                    <tr id="Tr1" runat="server">
                        <td id="Td6" runat="server">
                            <table id="groupPlaceholderContainer" runat="server" border="0" style="">
                                <tr id="groupPlaceholder" runat="server">
                                </tr>
                            </table>
                        </td>
                    </tr>
                    <tr id="Tr2" runat="server">
                        <td id="Td7" runat="server" style=""></td>
                    </tr>
                </table>
            </LayoutTemplate>
            <SelectedItemTemplate>
                <td id="Td8" runat="server" style="">SignalID:
                <asp:Label ID="SignalIDLabel" runat="server" Text='<%# Eval("SignalID") %>' />
                    <br />
                    AssetID:
                <asp:Label ID="AssetIDLabel" runat="server" Text='<%# Eval("AssetID") %>' />
                    <br />
                    Asset:
                <asp:Label ID="AssetLabel" runat="server" Text='<%# Eval("Asset") %>' />
                    <br />
                    SignalDate:
                <asp:Label ID="SignalDateLabel" runat="server" Text='<%# Eval("SignalDate","{0:yyyy-MM-dd}") %>' />
                    <br />
                    Direction:
                <asp:Label ID="DirectionLabel" runat="server" Text='<%# Eval("Direction") %>' />
                    <br />
                    StrikePrice:
                <asp:Label ID="StrikePriceLabel" runat="server" Text='<%# Eval("StrikePrice") %>' />
                    <br />
                    ExpiryPrice:
                <asp:Label ID="ExpiryPriceLabel" runat="server" Text='<%# Eval("ExpiryPrice") %>' />
                    <br />
                    StartTime:
                <asp:Label ID="StartTimeLabel" runat="server" Text='<%# Eval("SignalDate") %>' />
                    <br />
                    ExpiryTime:
                <asp:Label ID="ExpiryTimeLabel" runat="server" Text='<%# Eval("ExpiryTime") %>' />
                    <br />
                    Result:
                <asp:Label ID="ResultLabel" runat="server" Text='<%# Eval("Result") %>' />
                    <br />
                    ResultID:
                <asp:Label ID="ResultIDLabel" runat="server" Text='<%# Eval("ResultID") %>' />
                    <br />
                    <asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="Edit" />
                    <br />
                </td>
            </SelectedItemTemplate>
        </asp:ListView>
        <asp:SqlDataSource ID="Assets" runat="server" ConnectionString="<%$ ConnectionStrings:Signals2UConnectionString %>" SelectCommand="SELECT [AssetID], [Asset], [AssetType], [Symbol] FROM [Assets]"></asp:SqlDataSource>
        <asp:SqlDataSource ID="times" runat="server" ConnectionString="<%$ ConnectionStrings:Signals2UConnectionString %>" SelectCommand="SELECT DISTINCT [TimeID], [TimeValues] FROM [Times]"></asp:SqlDataSource>
        <asp:SqlDataSource ID="Outcome" runat="server" ConnectionString="<%$     ConnectionStrings:Signals2UConnectionString %>" SelectCommand="SELECT   [ResultID], [Result] FROM [Results]"></asp:SqlDataSource>
    </div>

我尝试更新结果值,该值是存储在来自结果表的二进制信号表中的外键。结果字段用作显示文本,ResultId用作下拉列表的值

1 个答案:

答案 0 :(得分:0)

解决。 EditItemTemplate

中缺少以下内容
  <asp:Label ID="SignalIDLabel" runat="server" Text='<%# Bind("SignalID")%>'/>