Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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#对SqlDataReader使用while循环_C#_Sql Server_While Loop_Sqldatareader - Fatal编程技术网

C#对SqlDataReader使用while循环

C#对SqlDataReader使用while循环,c#,sql-server,while-loop,sqldatareader,C#,Sql Server,While Loop,Sqldatareader,我试图使用while循环修改数据读取器中的数据,以使用innerHtml在网页上的HTML表中将数据显示为行。它在第一次迭代中运行良好,但在其余数据中不会再次迭代 我已经检查了数据读取器上的所有数据,因此似乎与我的while循环代码有关 关于我做错了什么有什么建议吗 string description = "placeholder"; string desc_mod; query.InnerHtml += "<table class='list_format'>"; using

我试图使用while循环修改数据读取器中的数据,以使用innerHtml在网页上的HTML表中将数据显示为行。它在第一次迭代中运行良好,但在其余数据中不会再次迭代

我已经检查了数据读取器上的所有数据,因此似乎与我的while循环代码有关

关于我做错了什么有什么建议吗

string description = "placeholder";
string desc_mod;

query.InnerHtml += "<table class='list_format'>";

using (SqlDataReader productList = SQLHelper.ExecuteQuery(query1))
    if (productList.HasRows)
    {
        while (productList.Read())
            description = (string)productList["Description"];

        desc_mod = description.Substring(0, 30);
        query.InnerHtml += "<tr><td><div><p>" + desc_mod + "</p</div></td></tr>";
    }

query.InnerHtml += "</table>";
string description=“占位符”;
字符串描述模块;
query.InnerHtml+=“”;
使用(SqlDataReader productList=SQLHelper.ExecuteQuery(query1))
if(productList.HasRows)
{
while(productList.Read())
description=(字符串)productList[“description”];
desc_mod=description.子字符串(0,30);

query.InnerHtml+=“”+desc_mod+”您缺少一组花括号来分隔while块和using块:

    string description = "placeholder";
    string desc_mod;
    query.InnerHtml += "<table class='list_format'>";
    using (SqlDataReader productList = SQLHelper.ExecuteQuery(query1)) {
        if (productList.HasRows){
            {
                while (productList.Read()) {
                    description = (string)productList["Description"];
                    desc_mod = description.Substring(0, 30);
                    query.InnerHtml += "<tr><td><div><p>" + desc_mod + "</p</div></td></tr>";
                }
            }
        }
    }
    query.InnerHtml += "</table>";
string description=“占位符”;
字符串描述模块;
query.InnerHtml+=“”;
使用(SqlDataReader productList=SQLHelper.ExecuteQuery(query1)){
if(productList.HasRows){
{
while(productList.Read()){
description=(字符串)productList[“description”];
desc_mod=description.子字符串(0,30);

query.InnerHtml+=“”+desc_mod+”您缺少一组花括号来分隔while块和using块:

    string description = "placeholder";
    string desc_mod;
    query.InnerHtml += "<table class='list_format'>";
    using (SqlDataReader productList = SQLHelper.ExecuteQuery(query1)) {
        if (productList.HasRows){
            {
                while (productList.Read()) {
                    description = (string)productList["Description"];
                    desc_mod = description.Substring(0, 30);
                    query.InnerHtml += "<tr><td><div><p>" + desc_mod + "</p</div></td></tr>";
                }
            }
        }
    }
    query.InnerHtml += "</table>";
string description=“占位符”;
字符串描述模块;
query.InnerHtml+=“”;
使用(SqlDataReader productList=SQLHelper.ExecuteQuery(query1)){
if(productList.HasRows){
{
while(productList.Read()){
description=(字符串)productList[“description”];
desc_mod=description.子字符串(0,30);

query.InnerHtml+=“”+desc_mod+”缺少while语句的一些括号

string description = "placeholder";
    string desc_mod;
    query.InnerHtml += "<table class='list_format'>";
    using (SqlDataReader productList = SQLHelper.ExecuteQuery(query1))
        if (productList.HasRows){
            {
                while (productList.Read())
                {
                    description = (string)productList["Description"];
                    desc_mod = description.Substring(0, 30);
                query.InnerHtml += "<tr><td><div><p>" + desc_mod + "</p</div></td></tr>";
                }
            }
        }
    query.InnerHtml += "</table>";
string description=“占位符”;
字符串描述模块;
query.InnerHtml+=“”;
使用(SqlDataReader productList=SQLHelper.ExecuteQuery(query1))
if(productList.HasRows){
{
while(productList.Read())
{
description=(字符串)productList[“description”];
desc_mod=description.子字符串(0,30);

query.InnerHtml+=“”+desc_mod+”缺少while语句的一些括号

string description = "placeholder";
    string desc_mod;
    query.InnerHtml += "<table class='list_format'>";
    using (SqlDataReader productList = SQLHelper.ExecuteQuery(query1))
        if (productList.HasRows){
            {
                while (productList.Read())
                {
                    description = (string)productList["Description"];
                    desc_mod = description.Substring(0, 30);
                query.InnerHtml += "<tr><td><div><p>" + desc_mod + "</p</div></td></tr>";
                }
            }
        }
    query.InnerHtml += "</table>";
string description=“占位符”;
字符串描述模块;
query.InnerHtml+=“”;
使用(SqlDataReader productList=SQLHelper.ExecuteQuery(query1))
if(productList.HasRows){
{
while(productList.Read())
{
description=(字符串)productList[“description”];
desc_mod=description.子字符串(0,30);

query.InnerHtml+=“”+desc_mod+”使用
foreach
循环和
DbDataRecord

string description = "placeholder";
string desc_mod;
query.InnerHtml += "<table class='list_format'>";   

using (var r = SQLHelper.ExecuteQuery(query1))
{
    foreach (DbDataRecord s in r)
    {
        description = (string)s["Description"];
        desc_mod = description.Substring(0, 30);
        query.InnerHtml += "<tr><td><div><p>" + desc_mod + "</p</div></td></tr>";
    }
}

query.InnerHtml += "</table>";
string description=“占位符”;
字符串描述模块;
query.InnerHtml+=“”;
使用(var r=SQLHelper.ExecuteQuery(query1))
{
foreach(r中的DbDataRecord)
{
description=(字符串)s[“description”];
desc_mod=description.子字符串(0,30);

query.InnerHtml+=“”+desc_mod+”使用
foreach
循环和
DbDataRecord

string description = "placeholder";
string desc_mod;
query.InnerHtml += "<table class='list_format'>";   

using (var r = SQLHelper.ExecuteQuery(query1))
{
    foreach (DbDataRecord s in r)
    {
        description = (string)s["Description"];
        desc_mod = description.Substring(0, 30);
        query.InnerHtml += "<tr><td><div><p>" + desc_mod + "</p</div></td></tr>";
    }
}

query.InnerHtml += "</table>";
string description=“占位符”;
字符串描述模块;
query.InnerHtml+=“”;
使用(var r=SQLHelper.ExecuteQuery(query1))
{
foreach(r中的DbDataRecord)
{
description=(字符串)s[“description”];
desc_mod=description.子字符串(0,30);


query.InnerHtml+=“”+desc_mod+”因此在调试器中运行它,单步执行while循环并查看发生了什么。是否
productList.Read()
意外返回
false
?(由于重复调用
Read
更改状态,您可能需要添加一个变量来检查此情况)。每次通过循环时,
InnerHtml
会发生什么情况等。将while主体放在大括号中,看看这是否有帮助?如果这是您的实际代码,则while循环只执行
description=(string)productList[“description”];
line。将循环相关代码包装在{}正如大家提到的,缺少while大括号才是问题所在。谢谢!!所以在调试器中运行它,单步执行while循环,看看发生了什么。是否
productList.Read()
意外返回
false
?(您可能需要添加一个变量来检查这一点,因为重复调用
Read
更改状态)。在循环的每个过程中,
InnerHtml
会发生什么情况,等等。将while主体放在大括号中,看看这是否有帮助?如果这是您的实际代码,则while循环只执行
description=(string)productList[“description”]
line.Wrap循环相关代码在{}中正如大家提到的,是while大括号丢失的问题。谢谢!!在我的评论之后,我想说只有“description=(string)productList[“description”];“如果你不使用大括号,它将属于你的WHILE循环。这使它成为一个打字错误问题,这意味着它应该关闭,而不是回答。@TimSchmelter-是的,但他们也没有调试过它(这是我对问题的评论建议他们做的)。如果他们这样做了,他们会看到只有
description=
行被重复调用,在这一点上,这可能会使它成为一个有点好的问题,但实际上它也在研究中。@Damien_不信者,如果不使用大括号{},解释也只有一半。如果不使用大括号,则仅当条件将执行到最后一条记录时,下一行将开始执行。这意味着描述变量将只包含最后一个值,并且将创建一个且仅一个行标记。我在注释后打算说,只有“description=(string)productList[“description”];”我会在你手下