SqlDataReader如何绑定到gridview的特定列? 怎么把sqldatasource里查询得的SqlDataReader绑定到gridview的特定列,现在的情况是SqlDataReader有a,b,c三列,gridview有5列,其中有a,b,c,还有两列d,e,问如何绑定?谢谢啦 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 好,贴代码如下: <asp:GridView ID="gvFile" runat="server" Height="210px" Width="440px" CellPadding="4" DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None" AllowPaging="True" AutoGenerateColumns="False"> <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" /> <RowStyle BackColor="#FFFBD6" ForeColor="#333333" /> <Columns> <asp:BoundField DataField="name" HeaderText="名字" SortExpression="name" /> <asp:BoundField DataField="size" HeaderText="大小" SortExpression="size" /> <asp:BoundField DataField="createTime" HeaderText="创建时间" SortExpression="createTime" /> <asp:ButtonField ButtonType="Image" HeaderText="重命名" ImageUrl="~/img/webdisk_img/下/rename.gif" Text="重命名该文件(夹)" /> <asp:ButtonField Text="下载该文件" ButtonType="Image" HeaderText="下载" ImageUrl="~/img/webdisk_img/下/download.gif" /> <asp:ButtonField ButtonType="Image" HeaderText="删除" ImageUrl="~/img/webdisk_img/下/delete_one.gif" Text="删除此文件(夹)" /> </Columns> <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" /> <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" /> <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" /> <AlternatingRowStyle BackColor="White" /> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:SQLCONNECTIONSTRING %>" SelectCommand="SELECT [name], [size], [createTime] FROM [directorys] WHERE ([parentID] = @parentID)"> <SelectParameters> <asp:QueryStringParameter Name="parentID" QueryStringField="DiskRootID" Type="Int32"/> </SelectParameters> </asp:SqlDataSource>--------------------------------------------------------------------------多出的列是ButtonField,用来执行动作的 SELECT [name], [size], [createTime] FROM [directorys] WHERE ([parentID] = @parentID) 你看你的select语句只查询了三个值 是不可能把这三个值全部插进去的。 如果有必要 把你的d e 两列设为默认值 也许可以把页面做的好看些 SELECT [name], [size], [createTime] FROM [directorys] WHERE ([parentID] = @parentID) 你看你的select语句只查询了三个值 是不可能把这三个值全部插进去的。 如果有必要 把你的d e 两列设为默认值 也许可以把页面做的好看些 我弄了一个例子, <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1"> <Columns> <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" ReadOnly="True" SortExpression="ID" /> <asp:BoundField DataField="loginName" HeaderText="loginName" SortExpression="loginName" /> <asp:TemplateField> <ItemTemplate> <asp:Button ID="Button4" runat="server" Text="Button" /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <asp:Button ID="Button5" runat="server" Text="Button" /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="Data Source=(local);Initial Catalog=test;User ID=test;Password=test" ProviderName="System.Data.SqlClient" SelectCommand="SELECT [ID], [loginName] FROM [admin]"></asp:SqlDataSource>可啊你检查数据库连接字符串,我刚试一下,数据库连接出错则出现了你说的错误 select语句只查询了三个值 ,就是要把这三个值全部插进去啊,插到a,b,c三列中去d,e是按钮要触发事件,不能删 数据库连接没出错,我想根据上一页传过来的querystringdiskrootid查询该目录下的文件(夹),不知是不是我第一开始只需把<asp:BoundField DataField="name" HeaderText="名字" SortExpression="name" /><asp:BoundField DataField="size" HeaderText="大小" SortExpression="size" /><asp:BoundField DataField="createTime" HeaderText="创建时间" SortExpression="createTime" /> 中的BoundField改掉,比如改成 <asp:TemplateField HeaderText="名字"> <ItemTemplate> <%#DataBinder.Eval(Container.DataItem,"name") %></a> </ItemTemplate> <ItemStyle HorizontalAlign="Left" /> <HeaderStyle Width="40%" /> </asp:TemplateField> <asp:TemplateField HeaderText="大小"> <ItemTemplate> <%# (int)DataBinder.Eval(Container.DataItem,"size")/1024 %>KB </ItemTemplate> <ItemStyle HorizontalAlign="Center" /> <HeaderStyle Width="15%" HorizontalAlign="Center" /> </asp:TemplateField> <asp:TemplateField HeaderText="创建时间"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem,"createTime") %> </ItemTemplate> <ItemStyle HorizontalAlign="Center" /> <HeaderStyle Width="15%" HorizontalAlign="Center" /> </asp:TemplateField> 未知可否? 求一个简单的mvc2.0开发的实例 存储过程无参数问题 网页内部套网页的问题! 怎么让验证控件单行显示 救命啊~~~急求高人救命!!asp.net连接 sql2000 ASP.NET 读XML时的郁闷问题. 为什么程序在别的机器上运行时,会发生这样的配置错误! 讨论一下 DataList 的翻页问题 sql统计问题 为什么在表中的有些控件不能居中? 请问这个"/"怎么处理? 关于静态属性的问题
<asp:GridView ID="gvFile" runat="server" Height="210px" Width="440px"
CellPadding="4" DataSourceID="SqlDataSource1" ForeColor="#333333"
GridLines="None" AllowPaging="True" AutoGenerateColumns="False">
<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
<Columns>
<asp:BoundField DataField="name" HeaderText="名字" SortExpression="name" />
<asp:BoundField DataField="size" HeaderText="大小" SortExpression="size" />
<asp:BoundField DataField="createTime" HeaderText="创建时间"
SortExpression="createTime" />
<asp:ButtonField ButtonType="Image" HeaderText="重命名"
ImageUrl="~/img/webdisk_img/下/rename.gif" Text="重命名该文件(夹)" />
<asp:ButtonField Text="下载该文件" ButtonType="Image" HeaderText="下载"
ImageUrl="~/img/webdisk_img/下/download.gif" />
<asp:ButtonField ButtonType="Image" HeaderText="删除"
ImageUrl="~/img/webdisk_img/下/delete_one.gif" Text="删除此文件(夹)" />
</Columns>
<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:SQLCONNECTIONSTRING %>"
SelectCommand="SELECT [name], [size], [createTime] FROM [directorys] WHERE ([parentID] = @parentID)">
<SelectParameters>
<asp:QueryStringParameter Name="parentID" QueryStringField="DiskRootID"
Type="Int32"/>
</SelectParameters>
</asp:SqlDataSource>
--------------------------------------------------------------------------
多出的列是ButtonField,用来执行动作的
如果有必要 把你的d e 两列设为默认值 也许可以把页面做的好看些
如果有必要 把你的d e 两列设为默认值 也许可以把页面做的好看些
DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False"
ReadOnly="True" SortExpression="ID" />
<asp:BoundField DataField="loginName" HeaderText="loginName"
SortExpression="loginName" />
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button4" runat="server" Text="Button" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button5" runat="server" Text="Button" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="Data Source=(local);Initial Catalog=test;User ID=test;Password=test"
ProviderName="System.Data.SqlClient"
SelectCommand="SELECT [ID], [loginName] FROM [admin]"></asp:SqlDataSource>可啊
你检查数据库连接字符串,我刚试一下,数据库连接出错则出现了你说的错误
d,e是按钮要触发事件,不能删
<asp:BoundField DataField="name" HeaderText="名字" SortExpression="name" />
<asp:BoundField DataField="size" HeaderText="大小" SortExpression="size" />
<asp:BoundField DataField="createTime" HeaderText="创建时间" SortExpression="createTime" />
中的BoundField改掉,比如改成
<asp:TemplateField HeaderText="名字">
<ItemTemplate>
<%#DataBinder.Eval(Container.DataItem,"name") %></a>
</ItemTemplate>
<ItemStyle HorizontalAlign="Left" />
<HeaderStyle Width="40%" />
</asp:TemplateField>
<asp:TemplateField HeaderText="大小">
<ItemTemplate>
<%# (int)DataBinder.Eval(Container.DataItem,"size")/1024 %>KB
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
<HeaderStyle Width="15%" HorizontalAlign="Center" />
</asp:TemplateField>
<asp:TemplateField HeaderText="创建时间">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem,"createTime") %>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" />
<HeaderStyle Width="15%" HorizontalAlign="Center" />
</asp:TemplateField>
未知可否?