Kan*_*ani 7 c# loops if-statement
看这个:
myReader = cmd.ExecuteReader();
if (myReader.HasRows)
{
while (myReader.Read())
{
info = myReader.GetString("info");
...
}
}
.....
Run Code Online (Sandbox Code Playgroud)
好吧,我不知道为什么,但是当我编译它并在另一台PC中使用它时,它会因为时间而爆炸.但如果我这样做:
myReader = cmd.ExecuteReader();
if (myReader.HasRows)
{
if (myReader.Read()) <------------------- NOTICE THE IF
{
info = myReader.GetString("info");
...
}
}
.....
Run Code Online (Sandbox Code Playgroud)
... 将工作.请注意,由于程序的逻辑,我知道每次只有一个元素.
可以这样做吗?它看起来很可怕,也许不是一个好习惯(?).我在问你的方向.
编辑:将发布更多代码,因为可以帮助找到我的错误:
while (myReader.Read())
{
info = myReader.GetString("info");
...
/**
* Write the relevant info in the LOGS
*/
connection.Close(); <---------- :S
connection.Open(); <---------- if I don´t do this I got some problems with the connection!!!!
string queryLog = "INSERT INTO ....;
MySqlCommand cmdLog = new MySqlCommand(queryLog, connection);
cmdLog.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)
Ada*_*rth 13
每当我期待一行时,我就这样做,没有任何问题.
如果我期待单个值,我会ExecuteScalar改用.这将只返回返回的结果集的第一行的第一列中保存的值,通常该集只有一列和一行,因此您不会注意到这一点.
此外,我倾向于不打算if (myReader.HasRows)作为if (myReader.Read())封面.
我不知道为什么while你发出的原因...我只是提出我的意见,如果你不期望多行,使用ifover while.
| 归档时间: |
|
| 查看次数: |
1569 次 |
| 最近记录: |