using SQL = System.Data.SqlClient;SQL.SqlConnection dbConn = null;
SQL.SqlDataReader dbReader = null;try
{
string sConnect;
sConnect = @"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=H2007";
dbConn = new SQL.SqlConnection(sConnect);
dbConn.Open(); string sql;
sql = "select * from UserInfo;"; SQL.SqlCommand dbCmd;
dbCmd = new SQL.SqlCommand(sql, dbConn); dbReader = dbCmd.ExecuteReader();
int count = 0;
string username;
string userpwd; while (dbReader.Read())
{
count += 1; username = dbReader["用户名"].ToString();
userpwd = dbReader["密码"].ToString();
}
}
catch(Exception ex)
{
throw ex;
}
finally
{
try{ dbReader.Close(); }
catch{}
try{ dbConn.Close(); }
catch{}
}
我debug了一下,发现第一次while(dbRead.read())的时候,dbReader.read()是true,但一过了while,就是false了,然后就跑catch里去了,觉得很奇怪!
哪位达人帮忙分析一下阿。我确定我的数据库表里有4条记录。
SQL.SqlDataReader dbReader = null;try
{
string sConnect;
sConnect = @"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=H2007";
dbConn = new SQL.SqlConnection(sConnect);
dbConn.Open(); string sql;
sql = "select * from UserInfo;"; SQL.SqlCommand dbCmd;
dbCmd = new SQL.SqlCommand(sql, dbConn); dbReader = dbCmd.ExecuteReader();
int count = 0;
string username;
string userpwd; while (dbReader.Read())
{
count += 1; username = dbReader["用户名"].ToString();
userpwd = dbReader["密码"].ToString();
}
}
catch(Exception ex)
{
throw ex;
}
finally
{
try{ dbReader.Close(); }
catch{}
try{ dbConn.Close(); }
catch{}
}
我debug了一下,发现第一次while(dbRead.read())的时候,dbReader.read()是true,但一过了while,就是false了,然后就跑catch里去了,觉得很奇怪!
哪位达人帮忙分析一下阿。我确定我的数据库表里有4条记录。
{
count += 1;username = dbReader["用户名"].ToString();
userpwd = dbReader["密码"].ToString();
}
}
在这一段代码之后,你进行了其他数据库操作没有?
{
count += 1;
username = dbReader["用户名"].ToString();
userpwd = dbReader["密码"].ToString();
}
}
catch(Exception ex)
{
throw ex;
}好象多了一个}
没有其他数据库操作。
其他信息: 在没有任何数据时进行无效的读取尝试。
dbReader.Read() dbReader最好马上关闭
而不是放在finally 里由它关闭