Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据表中的for循环出错_C#_Asp.net - Fatal编程技术网

C# 数据表中的for循环出错

C# 数据表中的for循环出错,c#,asp.net,C#,Asp.net,数据表中有一个错误,我想在aspx代码中显示它。%%> 这给我带来了一个例外: 编译服务此请求所需的资源时出错。请查看以下特定错误详细信息,并适当修改源代码 代码如下: <%for (int i = 0; i < DTview.Rows.Count; i++)%> <% {%> <tr><%=DTview.Rows[i]["blog_total_views"].ToString(); %></tr>

数据表中有一个错误,我想在aspx代码中显示它。%%>

这给我带来了一个例外:

编译服务此请求所需的资源时出错。请查看以下特定错误详细信息,并适当修改源代码

代码如下:

<%for (int i = 0; i < DTview.Rows.Count; i++)%>
     <% {%>
        <tr><%=DTview.Rows[i]["blog_total_views"].ToString(); %></tr>
        <tr><%=DTview.Rows[i]["first_name"].ToString(); %></tr>
        <tr><%=DTview.Rows[i]["is_affiliate"].ToString(); %></tr>
        <tr><%=DTview.Rows[i]["rating"].ToString(); %></tr>
        <tr><%=DTview.Rows[i]["price"].ToString(); %></tr> 
        <tr><%=DTview.Rows[i]["current_city"].ToString(); %></tr>
      <%}%>
谢谢

试试这个:

 <%for (int i = 0; i < DTview.Rows.Count; i++)%>
 <% {%>
    <tr>
        <td><%=DTview.Rows[i]["blog_total_views"] %></td>
        <td><%=DTview.Rows[i]["first_name"] %></td>
        <td><%=DTview.Rows[i]["is_affiliate"] %></td>
        <td><%=DTview.Rows[i]["rating"] %></td>
        <td><%=DTview.Rows[i]["price"] %></td>
        <td><%=DTview.Rows[i]["current_city"] %></td>
     </tr>
  <%}%>
你必须放下分号;当使用时,因为它将直接写入变量的输出,当字段值为Null时,您也将使用.ToString获得Null异常。

这是否可行

<% foreach (DataRowView row in DTview)
{ %>
   <tr><td><%= row["blog_total_views"].ToString() %></td></tr>
   // Rest of the rows
<% } %>

至少可以说,你的方法不好

将DataTable中的数据显示为HTML表的理想方法是使用-这为您提供了最大的灵活性和对数据的控制

如果您不想花时间学习如何使用上面的方法,那没关系,第二个最好的方法是中继器控制,因此我将给出这方面所需的代码

首先,使用这样的.aspx标记:


你不也需要一个在那里吗?我认为分号不允许出现在语句的末尾。你的错误消息中引用的具体错误细节在哪里?他们怎么说?我想你或OP应该把第一个和最后一个都省略掉。@hans,谢谢你,我认为每次迭代应该只创建一个
<asp:Repeater id="rptMyView" runat="server">
    <HeaderTemplate><table><tbody></HeaderTemplate>
    <ItemTemplate>
        <tr>
            <td><%# DataBinder.Eval(Container.DataItem, "blog_total_views")%></td>
            <td><%# DataBinder.Eval(Container.DataItem, "first_name")%></td>
            <td><%# DataBinder.Eval(Container.DataItem, "is_affiliate")%></td>
            <td><%# DataBinder.Eval(Container.DataItem, "rating")%></td>
            <td><%# DataBinder.Eval(Container.DataItem, "price")%></td>
            <td><%# DataBinder.Eval(Container.DataItem, "current_city")%></td>
        </tr>
    </ItemTemplate>
    <FooterTemplate></tbody></table></FooterTemplate>
</asp:Repeater>
rptMyView.DataSource = DTview;
Repeater1.DataBind();