尝试从我的问题中发现类似但似乎检测到太多无法访问的代码
我的表格包含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循环中放入break并且我能够实现我的目标并且它给了我4个值,这在我的桌子上是相同的但似乎有一个错误检测到无法访问的代码...我应该忽略它,因为我能够得到我需要的东西吗?还是有另一种方式
答案 0 :(得分:2)
我很确定你在那里做了太多的查询,并且由于第一个查询和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
,因为现在您只有一个< / p>
答案 1 :(得分:0)
这很简单。您正在根据命令对象中数据库中的条目数运行for循环。
如果数据库中有多少条记录,则read方法将迭代四次。有关详细信息,请参阅此文章:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.read(v=vs.110).aspx。
简而言之,只需删除for循环,即可获得所需的结果。
答案 2 :(得分:0)
尝试这样的事情:
while (reader.Read())
{
flowLayoutPanel1.Controls
.Add(new List { linkLabel1.Text = reader["TitleAnime"].ToString()});
}