<asp:SqlDataSource ID="SqlDataSource5" runat="server" ConnectionString="<%$ ConnectionStrings:slopworkConnectionString %>"
SelectCommandType="StoredProcedure" SelectCommand="selectmethod">
<SelectParameters>
<asp:Parameter DefaultValue="YP10106" Name="ddbh" Type="String" />
</SelectParameters>
</asp:SqlDataSource> <asp:GridView ID="GridView2" ForeColor="Black" runat="server" EnableTheming="True" ShowFooter="True" Width="392px" AutoGenerateColumns="False" DataSourceID="SqlDataSource5" OnDataBound="GridView2_DataBound" OnRowDataBound="GridView2_RowDataBound"
>
<HeaderStyle BackColor="#333333" ForeColor="White" Height="25px" HorizontalAlign="Center"
VerticalAlign="Bottom" Font-Bold="True" />
<RowStyle Height="20px" HorizontalAlign="Center" />
<FooterStyle BackColor="#CCCC99" ForeColor="Black" />
<Columns>
<asp:BoundField DataField="ddbh" HeaderText="ddbh" SortExpression="ddbh" />
<asp:BoundField DataField="site" HeaderText="site" SortExpression="site" />
<asp:BoundField DataField="method" HeaderText="method" SortExpression="method" />
<asp:BoundField DataField="unit" HeaderText="unit" SortExpression="unit" />
</Columns>
</asp:GridView>
存储过程:ALTER PROCEDURE [dbo].[selectmethod]
(
@ddbh VARCHAR(10)
)
AS
BEGIN
DECLARE @sql VARCHAR(8000)
SET @sql = 'SELECT ddbh,site,method'
SELECT @sql = @sql + ',MIN(CASE WHEN size = '''+ size + ''' THEN value END) AS ['+ size +']'
FROM (SELECT DISTINCT size FROM method) A
ORDER BY size DESC SELECT @sql = @sql + ',unit FROM method WHERE ddbh = ''' + @ddbh + ''' GROUP BY ddbh,site,method,unit'
--print (@sql)
EXEC (@sql)
END
GO但是在查询分析器里面,SqlDataSource测试查询中都能查出所有列
SelectCommandType="StoredProcedure" SelectCommand="selectmethod">
<SelectParameters>
<asp:Parameter DefaultValue="YP10106" Name="ddbh" Type="String" />
</SelectParameters>
</asp:SqlDataSource> <asp:GridView ID="GridView2" ForeColor="Black" runat="server" EnableTheming="True" ShowFooter="True" Width="392px" AutoGenerateColumns="False" DataSourceID="SqlDataSource5" OnDataBound="GridView2_DataBound" OnRowDataBound="GridView2_RowDataBound"
>
<HeaderStyle BackColor="#333333" ForeColor="White" Height="25px" HorizontalAlign="Center"
VerticalAlign="Bottom" Font-Bold="True" />
<RowStyle Height="20px" HorizontalAlign="Center" />
<FooterStyle BackColor="#CCCC99" ForeColor="Black" />
<Columns>
<asp:BoundField DataField="ddbh" HeaderText="ddbh" SortExpression="ddbh" />
<asp:BoundField DataField="site" HeaderText="site" SortExpression="site" />
<asp:BoundField DataField="method" HeaderText="method" SortExpression="method" />
<asp:BoundField DataField="unit" HeaderText="unit" SortExpression="unit" />
</Columns>
</asp:GridView>
存储过程:ALTER PROCEDURE [dbo].[selectmethod]
(
@ddbh VARCHAR(10)
)
AS
BEGIN
DECLARE @sql VARCHAR(8000)
SET @sql = 'SELECT ddbh,site,method'
SELECT @sql = @sql + ',MIN(CASE WHEN size = '''+ size + ''' THEN value END) AS ['+ size +']'
FROM (SELECT DISTINCT size FROM method) A
ORDER BY size DESC SELECT @sql = @sql + ',unit FROM method WHERE ddbh = ''' + @ddbh + ''' GROUP BY ddbh,site,method,unit'
--print (@sql)
EXEC (@sql)
END
GO但是在查询分析器里面,SqlDataSource测试查询中都能查出所有列
{
HyperLinkField Field_BidID = new HyperLinkField();
Field_BidID.DataTextField = "BidID";
Field_BidID.HeaderText = "订单ID";
Field_BidID.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
this.GridView_Email.Columns.Add(Field_BidID);
//
BoundField Field_Name = new BoundField();
Field_Name.DataField = "Name";
Field_Name.HeaderText = "订单类型";
Field_Name.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
this.GridView_Email.Columns.Add(Field_Name);
//
BoundField Field_Title = new BoundField();
Field_Title.DataField = "Title";
Field_Title.HeaderText = "标题";
Field_Title.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
this.GridView_Email.Columns.Add(Field_Title);
//
BoundField Field_Content = new BoundField();
Field_Content.DataField = "Content";
Field_Content.HeaderText = "内容";
Field_Content.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
//
this.GridView_Email.Columns.Add(Field_Content);
BoundField Field_CDT = new BoundField();
Field_CDT.DataField = "CDT";
Field_CDT.HeaderText = "发送日期";
Field_CDT.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
this.GridView_Email.Columns.Add(Field_CDT);
}
<asp:BoundField DataField="site" HeaderText="site" SortExpression="site" />
想让他自动产生这个
1:你在vs的服务器资源管理器下直接运行下那个sp,看看能不能有结果
2:重新确定下你的boundfield字段有没有绑定错
3:还不行用后台代码绑定试试,不要用sqldatasouce