变量为循环中的长度?

时间:2016-08-23 14:36:06

标签: c# for-loop

我在for循环中定义长度时遇到问题。 我从SQL数据库中计算表中的行,并希望这个数字是for循环的长度。

这是for循环的代码:

    protected void Page_Load(object sender, EventArgs e)
    {

        for (int i = 0; i < A; i++)
        {
            System.Web.UI.HtmlControls.HtmlGenericControl createDiv =
            new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");
            createDiv.ID = "createDiv";
            this.Controls.Add(createDiv);
        }

    }

这是计算数据库表中行数的代码。

    public void A()
    {
        string stmt = "SELECT COUNT(*) FROM AlgSchipInfo";
        int count = 0;

        using (SqlConnection thisConnection = new SqlConnection ("DataSource=VMB-LP12;Initial Catalog=SmmsData;Integrated Security=True"))
        {
            using (SqlCommand cmdCount = new SqlCommand(stmt, thisConnection))
            {
                thisConnection.Open();
                count = (int)cmdCount.ExecuteScalar();
                TextBox2.Text = count.ToString();
            }
        }
    }

我想通过在for循环中创建div来使用它来显示我数据库中每艘船的信息。

任何人都可以帮我确定如何定义长度吗?

谢谢!

3 个答案:

答案 0 :(得分:5)

不要在A循环的条件内调用for方法 - 它将在每次迭代时执行。

int count = A();
for (int i = 0; i < count; i++)
{
  System.Web.UI.HtmlControls.HtmlGenericControl createDiv = ...
}

public int A()
{
  ...
  using ( ...
    using ( ...
    {
      ...
      return count;
    }
}

答案 1 :(得分:2)

在这种情况下,只需让A()返回int而不是void

public int A() {
    int count = 0;
    //do db stuff
    return count;
}

然后在你的循环中:

int shipCount = A();

for (int i = 0; i < shipCount; i++) {
    //make div
}

答案 2 :(得分:1)

太多事情要说^^' 首先,如果您需要在表AlgSchipInfo中显示元素的信息,只需在数据表中的计数或ORM之类的其他内容之后选择这些数据。

当您从数据库中获取数据表时,将其绑定到重复器或其他组件以列出您的项目。它比从头开始IMAO更有效率。

如果您有更具体的问题,欢迎您;)