我在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来使用它来显示我数据库中每艘船的信息。
任何人都可以帮我确定如何定义长度吗?
谢谢!
答案 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更有效率。
如果您有更具体的问题,欢迎您;)