0

私は vb.net を使用しており、その中で編集/削除操作を行おうとしています。

そのために、グリッドをバインドするコードを書きましたが、ページを実行しているとき、

グリッドは表示されません。

グリッドの aspx:

<asp:GridView ID="gv" runat="server" CellPadding="4" ForeColor="#333333" 
            GridLines="None" AutoGenerateColumns="False">
            <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
            <Columns>
                <asp:CommandField ShowEditButton="True" />
                <asp:CommandField ShowDeleteButton="True" />
                <asp:BoundField DataField="ExpenceDate" HeaderText="Expence Date" />
                <asp:BoundField DataField="sum(Amount)" HeaderText="Amount" />
            </Columns>
            <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
            <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <EditRowStyle BackColor="#999999" />
            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
        </asp:GridView>

グリッドをバインドするコード:

 Try
            da = New SqlDataAdapter("select expDate,sum(Amount) from expence_VB where expDate between '" + DateTime.Parse(txtFromDate.Text) + "' and '" + DateTime.Parse(txtToDate.Text) + "' group by ExpDate", con)
            ds = New DataSet()
            da.Fill(ds)
            gv.DataSource = ds.Tables(0)
            gv.DataBind()
        Catch ex As Exception

        End Try

ノート:

列の編集を行い、フィールドの自動生成をオフにしました。

バインドされたフィールドの場合、グリッドをバインドするために作成したクエリの列名と同じ DataField を作成しました。

これは何かの間違いでしょうか?

私を助けてください。

4

1 に答える 1

1

クエリ選択での間違い、そのクエリ sum(Amount) は列名を与えません。これを試してください:選択クエリを次から変更してください

da = New SqlDataAdapter("select expDate,sum(Amount) from expence_VB where expDate between '" + DateTime.Parse(txtFromDate.Text) + "' and '" + DateTime.Parse(txtToDate.Text) + "' group by ExpDate", con)

なる

da = New SqlDataAdapter("select expDate,sum(Amount) as SumAmount from expence_VB where expDate between '" + DateTime.Parse(txtFromDate.Text) + "' and '" + DateTime.Parse(txtToDate.Text) + "' group by ExpDate", con)

次に、aspx グリッドで、次のコードを変更できます。

<asp:BoundField DataField="sum(Amount)" HeaderText="Amount" />

なる :

<asp:BoundField DataField="SumAmount" HeaderText="Amount" />
于 2013-07-16T08:30:06.227 に答える