Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# mysql表进入列表_C#_Mysql_Winforms - Fatal编程技术网

C# 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

我使用c、winform和mysql数据库。 我有一个像下面这样的课桌

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;
            }
        }
    }