【发布时间】:2017-01-03 10:27:57
【问题描述】:
我正在创建一个公共静态变量List<>(来自MySQL 查询),但List 的Count 总是返回0!到目前为止,我已经尝试了一切,但没有成功。这是我的代码:
public static List<string> GetHashedVars(string ID)
{
List<string> lst = new List<string>();
MySqlConnection conn;
MySqlCommand cmd;
MySqlDataReader reader;
string connString, queryStr = "";
connString = ConfigurationManager.ConnectionStrings["GameserverConnString"].ToString();
using (conn = new MySqlConnection(connString))
{
//The query for execution
queryStr = "SELECT * FROM account.account WHERE id_hashed=?hid LIMIT 1";
//Open the connection to the database
conn.Open();
//execute command
cmd = new MySqlCommand(queryStr, conn);
cmd.Parameters.AddWithValue("?hid", ID);
using (reader = cmd.ExecuteReader())
{
//Loop through results
while (reader.Read())
{
lst.Add(reader.GetString(reader.GetOrdinal("id_hashed")));
lst.Add(reader.GetString(reader.GetOrdinal("login_hashed")));
lst.Add(reader.GetString(reader.GetOrdinal("webcode_hashed")));
lst.Add(Encryption.CipherEncryption(reader.GetString(reader.GetOrdinal("status")).Trim()));
}
}
reader.Close();
conn.Close();
}
queryStr = "";
reader = null;
cmd = null;
conn = null;
connString = "";
return lst;
}
【问题讨论】:
-
你先调试了吗?您正在连接到数据库吗?
-
你调试了吗?在您正在阅读并添加到列表的那一行,您能看到它是否确实添加了任何内容?
-
查询是否返回任何行
-
设置断点并使用调试工具检查变量。您可以轻松找到错误的地方。
-
是的,我做到了。与数据库的连接是成功的,因为我有两次完全相同的功能(不同但相同的结构)!我什至在
.ASPX中有一个标签来显示项目总数Count(为0)。我不知道我还能尝试什么,它只是不断向我抛出Index out of range这个特定的异常......