在 for 循环上检测到无法访问的代码
本文关键字:访问 代码 for 循环 检测 | 更新日期: 2023-09-27 18:33:34
尝试从我的问题中找到类似的代码,但似乎检测到太多无法访问的代码
,我的表由 4 行组成,我尝试了这段代码
using (MySqlConnection conn = new MySqlConnection(myConnection))
{
conn.Open();
MySqlCommand cmd = new MySqlCommand(query, conn);
int num = Convert.ToInt32(cmd.ExecuteScalar());
MySqlCommand cmd1 = new MySqlCommand(query2, conn);
MySqlDataReader reader = cmd1.ExecuteReader();
while (reader.Read())
{
for (int a = 0; a <= num; a++)
{
List li = new List();
li.linkLabel1.Text = reader["TitleAnime"].ToString();
flowLayoutPanel1.Controls.Add(li);
// break;
}
}
conn.Close();
}
但它给了我 16 个值,这太多了,然后我尝试在 for 循环中放置中断,我能够实现我的目标,它给了我 4 个值,这些值在我的桌子上是相同的,但似乎有一个错误称为检测到无法访问的代码。既然我能够得到我需要的东西,我应该忽略它吗?或者有没有另一种方法
我很确定你在那里做了太多的查询,并且由于第一个查询和那个 for 循环,你得到了 NxN 结果。
尝试这样的事情:
using (MySqlConnection conn = new MySqlConnection(myConnection))
{
conn.Open();
MySqlCommand cmd1 = new MySqlCommand(query2, conn);
MySqlDataReader reader = cmd1.ExecuteReader();
while (reader.Read())
{
List li = new List();
li.linkLabel1.Text = reader["TitleAnime"].ToString();
flowLayoutPanel1.Controls.Add(li);
}
conn.Close();
}
如果这可以正常工作,请考虑将query1
和cmd1
的名称更改为 query
和 cmd
,因为现在您每个
这很简单。您正在根据数据库中来自命令对象的条目数运行 for 循环。
如果这是数据库中的记录数,则 read 方法将迭代四次。有关详细信息,请参阅本文:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.read(v=vs.110).aspx。
简而言之,只需删除 for 循环,您就会得到您想要的结果。
尝试这样的事情:
while (reader.Read())
{
flowLayoutPanel1.Controls
.Add(new List { linkLabel1.Text = reader["TitleAnime"].ToString()});
}