المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : hashtable limitation?



C# Programming
06-17-2010, 11:11 AM
I have many parameters in my system_parameters table in SQL and I am populating into a hashtable but it seems it's not reading all (and no error raised!).. it's reading 19 out of 68.. this is my code to read from the sql:

while (sql_reader.Read())
{
if (_system_parameters_hash.ContainsKey(sql_reader["system_param_name"])) return;

if (sql_reader["system_param_value"] == DBNull.Value)
{
_system_parameters_hash.Add(sql_reader["system_param_name"].ToString(), null);
}
else {
if ((string)sql_reader["system_param_type"] == "bit") _system_parameters_hash.Add((string)sql_reader["system_param_name"], Convert.ToBoolean(sql_reader["system_param_value"]));
else if ((string)sql_reader["system_param_type"] == "string") _system_parameters_hash.Add((string)sql_reader["system_param_name"], (string)sql_reader["system_param_value"]);
else if ((string)sql_reader["system_param_type"] == "int") _system_parameters_hash.Add((string)sql_reader["system_param_name"], Convert.ToInt32(sql_reader["system_param_value"]));
else if ((string)sql_reader["system_param_type"] == "int64") _system_parameters_hash.Add((string)sql_reader["system_param_name"], Convert.ToInt64(sql_reader["system_param_value"]));
else if ((string)sql_reader["system_param_type"] == "short") _system_parameters_hash.Add((string)sql_reader["system_param_name"], Convert.ToInt16(sql_reader["system_param_value"]));
}
}
and this is a sample rows (parameter name, parameter value then parameter type)

APPOINTMENT_DEFAULT_CLINIC 2 intAPPOINTMENT_DEFAULT_DOCTOR 3 intBACKUP_DESTINATION_FOLDER C:\Temp\cure.bak stringBACKUP_SCHEDULE_DURATION DAILY stringBACKUP_SCHEDULE_ENABLED True bit

what can I do?