我已经创建了一个包含一个表“emp”的数据库,并在其中包含一些数据。现在,每次我启动应用程序时,我都想要一个列表从db获取数据并将其保存在列表中,因为我想在运行时对数据执行一些计算(如税和Gross-Salary)以供仅显示(不想保存它在db)。我已经尝试了很多次,但我无法理解这是如何做到的。这是我的代码:如何从MySql数据库加载数据到列表(基于控制台的应用程序)?
主类:
static void Main(string[] args)
{
empDB empDB1 = new empDB();
List<emplyee> empLST1 = new List<emplyee>();
if (empLST1 == null)
{
empDB1.loadLST(out empLST1);
}
}
empDB类:
class empDB
{
private string ConnectionString = @"server=localhost;DATABASE=hris;uid=root;Password=123456;";
internal void loadLST(out List<emplyee> loadedLST)
{
string query = "select name, grade from emp";
try
{
MySqlConnection con = new MySqlConnection(ConnectionString);
con.Open();
MySqlDataReader rdr = null;
MySqlCommand cmd = new MySqlCommand(query, con);
rdr = cmd.ExecuteReader();
while(rdr.Read())
{
List<employee> returnedLst = new List<employee>();
returnedLst.Add(rdr["name"].ToString(), rdr["grade"].ToString());
}
loadedLst = returnedLst;
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
我不知道,即使我的做法是正确与否。我已经搜索了几次,但几天前我刚刚开始在.net中工作,所以我不知道该怎么做。
好吧,我试图这,它也不到风度工作:
internal void GetDatabaseList()
{
List<employee> databases = new List<employee>();
MySqlConnection con = new MySqlConnection(ConnectionString);
{
con.Open();
DataTable tbl = con.GetSchema("Databases");
con.Close();
foreach (DataRow row in tbl.Rows)
{
databases.Add(row["hris"].ToString());
}
}
}
为什么不使用实体框架?是“原始的”ADO .NET是一项要求吗? – Dennis 2014-11-24 08:07:29
@丹尼斯是的,它是必需的,因为我没有学过实体框架,所以我也不允许使用它。 – 2014-11-24 08:10:21