C# mysql表进入列表
我使用c、winform和mysql数据库。 我有一个像下面这样的课桌C# mysql表进入列表,c#,mysql,winforms,C#,Mysql,Winforms,我使用c、winform和mysql数据库。 我有一个像下面这样的课桌 id class group name surname 1 10 1 joe philips 2 10 2 maya edwards 3 10 4 michael collins 4
id class group name surname
1 10 1 joe philips
2 10 2 maya edwards
3 10 4 michael collins
4 11 3 sasha ivanko
5 10 2 araz kurio
etc...
我有一门课,我的课是这样的
class MyClass
{
int class;
int group;
string name;
string surname;
}
有一张单子
List<MyClass> myclass = new List<MyClass>();
你能告诉我吗,
如何将t_表中的数据加载到此列表中
我喜欢在那里使用LINQ。
并且不在此数据表行中循环。您应该使用Linq Sql或实体数据模型。如果不是,则必须使用数据提供程序类DataAdapter填充DataTable
添加公共属性或参数构造函数
class MyClass
{
public int Class {get;set;}
public int Group {get;set;}
public string Name {get;set;}
public string SurName {get;set;}
}
var result = from row in dt.AsEnumerable()
select new MyClass
{
Class=row.Field<int>("class"),
Group=row.Field<int>("group"),
Name=row.Field<string>("name"),
SurName=row.Field<string>("surname")
};
LINQ到SQL将是理想的选择,但由于您有MySQL,因此在这种情况下您将没有现成的支持。虽然你可以探索
其他选项可以是使用SQL查询从数据库检索DataTable。然后遍历检索到的DataTable,为每一行创建MyClass的新实例,并从DataTable的列值填充值
您也可以使用DataReader来实现它 因此,您可以使用linq来检索数据
public static IEnumerable<T> GetEntity<T>() where T : new ()
{
using (SqlDataReader reader ...)
{
while (reader.Read())
{
T t = new T();
var values = new object[reader.FieldCount];
reader.GetValues(values);
for (var i = 0; i < values.Length; i++)
{
t.GetType().GetProperty(reader.GetName(i)).SetValue(t, values[i], null);
}
yield return t;
}
}
}
首先创建一个构造函数来初始化数据值的值或属性。然后循环遍历从db获取的数据集表,并使用myclass.add new MyClassInt32.Parsedr[class]。。。。。。;在循环内部。它将用与您的表行相对应的`MyClass'对象填充您的列表。
public static IEnumerable<T> GetEntity<T>() where T : new ()
{
using (SqlDataReader reader ...)
{
while (reader.Read())
{
T t = new T();
var values = new object[reader.FieldCount];
reader.GetValues(values);
for (var i = 0; i < values.Length; i++)
{
t.GetType().GetProperty(reader.GetName(i)).SetValue(t, values[i], null);
}
yield return t;
}
}
}