0

サー、2012 年 12 月の SQL サーバー 2008 データベースから 3 つのピボット テーブルを表示するために、次のスクリプト (完全な aspx ページ) を使用しています。

 <%@ Page Language="C#" %>

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 <script runat="server">

 </script>

 <html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
    .style1
    {
        color: #800000;
        font-size: medium;
        font-family: "Comic Sans MS";
    }
    .style2
    {
        text-align: center;
        color: #0000CC;
        font-family: "Comic Sans MS";
        font-size: small;
    }
    .style3
    {
        font-size: large;
    }
    .style4
    {
        text-align: center;
        color: #800000;
        font-family: "Comic Sans MS";
        font-size: small;
    }
    .style5
    {
        font-size: small;
    }
</style>

<script runat="server" visible="True">
int TotalTTL1;
int GetTTL1(int Train)
{
    TotalTTL1 += Train;
    return Train;
}
int GetTotalTTL1()
{
    return TotalTTL1;
}

</script>

</head>
<body>
<form id="form1" runat="server">
<div style="text-align: center">



<p class="style4">
    <strong>Three Phase Locomotive</strong></p>
<asp:GridView ID="GridView2" runat="server" AllowSorting="True" 
    AutoGenerateColumns="False" BorderColor="#CC0000" BorderStyle="Solid" 
    BorderWidth="2px" DataSourceID="SqlDataSource2" HorizontalAlign="Center" 
    ShowFooter="True" style="margin-top: 0px">
    <Columns>
        <asp:TemplateField HeaderText="Equipment" SortExpression="Equipt" 
            FooterText="Grand Total">
            <EditItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Equipt") %>'></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label1" runat="server" Text='<%# Bind("Equipt") %>'></asp:Label>
            </ItemTemplate> 
            <FooterStyle Font-Bold="True" />
           <ItemStyle HorizontalAlign="Left" VerticalAlign="Middle" />
        </asp:TemplateField>
        <asp:BoundField DataField="BSL" HeaderText="BSL" ReadOnly="True" 
            SortExpression="BSL" />
        <asp:BoundField DataField="AQ" HeaderText="AQ" ReadOnly="True" 
            SortExpression="AQ" />
        <asp:BoundField DataField="KYN" HeaderText="KYN" ReadOnly="True" 
            SortExpression="KYN" />
        <asp:BoundField DataField="ASN" HeaderText="ASN" ReadOnly="True" 
            SortExpression="ASN" />
        <asp:BoundField DataField="HWH" HeaderText="HWH" ReadOnly="True" 
            SortExpression="HWH" />
        <asp:BoundField DataField="MGS" HeaderText="MGS" ReadOnly="True" 
            SortExpression="MGS" />
        <asp:BoundField DataField="GMO" HeaderText="GMO" ReadOnly="True" 
            SortExpression="GMO" />
        <asp:BoundField DataField="WAT" HeaderText="WAT" ReadOnly="True" 
            SortExpression="WAT" />
        <asp:BoundField DataField="ANGL" HeaderText="ANGL" ReadOnly="True" 
            SortExpression="ANGL" />
        <asp:BoundField DataField="GZB" HeaderText="GZB" ReadOnly="True" 
            SortExpression="GZB" />
        <asp:BoundField DataField="LDH" HeaderText="LDH" ReadOnly="True" 
            SortExpression="LDH" />
        <asp:BoundField DataField="JHS" HeaderText="JHS" ReadOnly="True" 
            SortExpression="JHS" />
        <asp:BoundField DataField="CNB" HeaderText="CNB" ReadOnly="True" 
            SortExpression="CNB" />
        <asp:BoundField DataField="AJJ" HeaderText="AJJ" ReadOnly="True" 
            SortExpression="AJJ" />
        <asp:BoundField DataField="ED" HeaderText="ED" ReadOnly="True" 
            SortExpression="ED" />
        <asp:BoundField DataField="RPM" HeaderText="RPM" ReadOnly="True" 
            SortExpression="RPM" />
        <asp:BoundField DataField="BZA" HeaderText="BZA" ReadOnly="True" 
            SortExpression="BZA" />
        <asp:BoundField DataField="LGD" HeaderText="LGD" ReadOnly="True" 
            SortExpression="LGD" />
        <asp:BoundField DataField="KZJ" HeaderText="KZJ" ReadOnly="True" 
            SortExpression="KZJ" />
        <asp:BoundField DataField="TATA" HeaderText="TATA" ReadOnly="True" 
            SortExpression="TATA" />
        <asp:BoundField DataField="BNDM" HeaderText="BNDM" ReadOnly="True" 
            SortExpression="BNDM" />
        <asp:BoundField DataField="BKSC" HeaderText="BKSC" ReadOnly="True" 
            SortExpression="BKSC" />
        <asp:BoundField DataField="SRC" HeaderText="SRC" ReadOnly="True" 
            SortExpression="SRC" />
        <asp:BoundField DataField="BIA" HeaderText="BIA" ReadOnly="True" 
            SortExpression="BIA" />
        <asp:BoundField DataField="BRC" HeaderText="BRC" ReadOnly="True" 
            SortExpression="BRC" />
        <asp:BoundField DataField="BL" HeaderText="BL" ReadOnly="True" 
            SortExpression="BL" />
        <asp:BoundField DataField="TKD" HeaderText="TKD" ReadOnly="True" 
            SortExpression="TKD" />
        <asp:BoundField DataField="ET" HeaderText="ET" ReadOnly="True" 
            SortExpression="ET" />
        <asp:BoundField DataField="NKJ" HeaderText="NKJ" ReadOnly="True" 
            SortExpression="NKJ" />
        <asp:TemplateField HeaderText="Total" SortExpression="TTL">
             <ItemTemplate>
                    <%# GetTTL1(int.Parse(Eval("TTL").ToString())).ToString()%>
                </ItemTemplate>
                <FooterTemplate>
                    <%# GetTotalTTL1().ToString()%>
                </FooterTemplate>
             <FooterStyle Font-Bold="True" />
        </asp:TemplateField>
    </Columns>
    <FooterStyle Font-Names="Tahoma" Font-Size="Small" ForeColor="Black" 
        HorizontalAlign="Center" VerticalAlign="Middle" />
    <HeaderStyle Font-Names="Tahoma" Font-Size="Small" ForeColor="Black" 
        HorizontalAlign="Center" VerticalAlign="Middle" />
    <RowStyle Font-Names="Tahoma" Font-Size="Small" HorizontalAlign="Center" 
        VerticalAlign="Middle" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" 
    ConnectionString="<%$ ConnectionStrings:EquipfailuresERConnectionString %>" 
    SelectCommand="SELECT  Equipt, NULLIF([BSL],0) AS BSL, NULLIF([AQ],0) AS AQ, NULLIF([KYN],0) AS KYN,  NULLIF([ASN],0) AS ASN, NULLIF([HWH],0) AS HWH, NULLIF([MGS],0) AS MGS, NULLIF([GMO],0) AS GMO, NULLIF([WAT],0) AS WAT, NULLIF([ANGL],0) AS ANGL, NULLIF([GZB],0) AS GZB, NULLIF([LDH],0) AS LDH, NULLIF([JHS],0) AS JHS, NULLIF([CNB],0) AS CNB, NULLIF([AJJ],0) AS AJJ, NULLIF([ED],0) AS ED, NULLIF([RPM],0) AS RPM, NULLIF([BZA],0) AS BZA, NULLIF([LGD],0) AS LGD, NULLIF([KZJ],0) AS KZJ, NULLIF([TATA],0) AS TATA, NULLIF([BNDM],0) AS BNDM, NULLIF([BKSC],0) AS BKSC, NULLIF([SRC],0) AS SRC, NULLIF([BIA],0) AS BIA, NULLIF([BRC],0) AS BRC, NULLIF([BL],0) AS BL, NULLIF([TKD],0) AS TKD, NULLIF([ET],0) AS ET, NULLIF([NKJ],0) AS NKJ, NULLIF(([BSL] + [AQ] + [KYN] + [ASN] + [HWH] + [MGS] + [GMO] + [WAT] + [ANGL] + [GZB] + [LDH] + [JHS] + [CNB] + [AJJ] + [ED] + [RPM] + [BZA] + [LGD] + [KZJ] + [TATA] + [BNDM] + [BKSC] + [SRC] + [BIA] + [BRC] + [BL] + [TKD] + [ET] + [NKJ] ),0) AS TTL 
 FROM 
( 
SELECT Equipt, Shed 
FROM ERfailures WHERE Date &gt;= '12/01/2012' AND Date &lt;= '12/31/2012' AND loco_type = '3-Phase' AND classification = 'Loco'  
) x
PIVOT 
( 
COUNT(Shed) 
FOR Shed IN ([BSL],  [AQ],  [KYN],  [ASN],  [HWH],  [MGS],  [GMO],  [WAT],  [ANGL],  [GZB],  [LDH],  [JHS],  [CNB],  [AJJ],  [ED],  [RPM],  [BZA],  [LGD],  [KZJ],  [TATA],  [BNDM],  [BKSC],  [SRC],  [BIA],  [BRC],  [BL],  [TKD],  [ET],  [NKJ] ))  p">
</asp:SqlDataSource>




</form>
<p class="style5" style="text-align: center">
    <a href="mainpage.aspx">Back</a></p>
 </body>
 </html>

ここで、2013 年 1 月の行を次のように変更します。

   FROM ERfailures WHERE Date &gt;= '01/01/2013' AND Date &lt;= '01/31/2013' AND loco_type = '3-Phase' AND classification = 'Loco'

次のようなエラーが発生します

  Input string was not in a correct format."
  Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
 Exception Details: System.FormatException: Input string was not in a correct format.
 Stack Trace: 


[FormatException: Input string was not in a correct format.]
System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +9591147
System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +119
ASP.erequipfailurejanuary_aspx.__DataBind__control43(Object sender, EventArgs e) +106
System.Web.UI.Control.OnDataBinding(EventArgs e) +91
System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +92
System.Web.UI.Control.DataBind() +15
System.Web.UI.Control.DataBindChildren() +201
System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +101
System.Web.UI.Control.DataBind() +15
System.Web.UI.Control.DataBindChildren() +201
System.Web.UI.Control.DataBind(Boolean raiseOnDataBinding) +101
System.Web.UI.Control.DataBind() +15
System.Web.UI.WebControls.GridView.CreateRow(Int32 rowIndex, Int32 dataSourceIndex, DataControlRowType rowType, DataControlRowState rowState, Boolean dataBind, Object dataItem, DataControlField[] fields, TableRowCollection rows, PagedDataSource pagedDataSource) +166
System.Web.UI.WebControls.GridView.CreateChildControls(IEnumerable dataSource, Boolean dataBinding) +3896
System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data) +66
System.Web.UI.WebControls.GridView.PerformDataBinding(IEnumerable data) +14
System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +128
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +33
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +143
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +74
System.Web.UI.WebControls.GridView.DataBind() +4
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +66
System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +75
System.Web.UI.Control.EnsureChildControls() +102
System.Web.UI.Control.PreRenderRecursiveInternal() +42
System.Web.UI.Control.PreRenderRecursiveInternal() +175
System.Web.UI.Control.PreRenderRecursiveInternal() +175
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2496"

この問題を解決するにはどうすればよいですか? 助けてください。

4

1 に答える 1

0

問題はあなたのクエリではありません。これは、返される値の 1 つです。バインド先に、数値を期待しているが数値以外の値を取得している列があるようです。

に基づく:

[FormatException: 入力文字列が正しい形式ではありませんでした。] System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +9591147 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info ) +119 ASP.erequipfailurejanuary_aspx._ DataBind _control43(オブジェクト送信者、EventArgs e)

于 2013-02-27T13:38:15.873 に答える