簡體   English   中英

如何返回與數據庫中的記錄對應的對象列表?

[英]How can I return a list of objects corresponding to records in my database?

我是C#的新手,我在所有方面都在掙扎,請提供幫助。 這是我正在嘗試做的事情:

創建一個數據庫類,該類返回一個動態列表,該列表包含一個類的實例,具體取決於要查詢的表:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Reflection;

    Class MYDatabase{

    public void main ()
    {
         String QueryString="select COLUMN_NAME, DATA_TYPE from information_schema.columns where table_name = 'mytable'";
         Object MyData=GetRsults(QueryString,"SchemaStructure");
    }

    public static Object GetResults(string QueryString, String ClassName)
    {

        SqlCommand cmd = new SqlCommand();
        SqlDataReader reader;

        cmd.CommandText = QueryString;
        cmd.CommandType = CommandType.Text;
        //assuming I already defined my connection
        cmd.Connection = Connection;

        Connection.Open();

        reader = cmd.ExecuteReader();

        Type ClassType = Type.GetType(ClassName);
        Type ListType = typeof(List<>).MakeGenericType(new Type[] { ClassType });
        Object Results = Activator.CreateInstance(ListType);
        Object SingleResult = Activator.CreateInstance(ClassType);

        while (reader.Read())
        {

            for (int i = 0; i < reader.FieldCount; i++)
            {
                var PropName= SingleResult.GetType().GetProperty(reader.GetName(i).ToString());
                //Convert.ChangeType(value, propertyInfo.PropertyType)
                PropName.SetValue(PropName,reader.GetValue(i).ToString(),null);

            }
            Results.Add(SingleResult);

        }
        Connection.Close();

        return Results;
    }
    }

class SchemaStructure
{
    public string COLUMN_NAME { set; get; }
    public string DATA_TYPE { set; get; }

}

這行不通, Results.Add(SingleResult);Results.Add(SingleResult); 給我一個信息

“對象”不包含“添加”的定義,並且找不到包含接受“對象”類型的第一個參數的擴展方法“添加”(您是否缺少using指令或程序集引用?)

誰能幫我解決此代碼?

如果我的方法根本沒有道理,我願意接受其他建議。

謝謝

我想,最重要的是,當您擁有實體框架時,我不會手搖我的POCO對象。 使用NuGet將Entity的最新版本添加到項目中,然后可以右鍵單擊項目並使用Entity的“ Reverse Engineer Code First”功能來構建模型。 當然,這假設您使用的是Entity可以連接到的數據庫,並且該數據庫已經構建完畢...

您可以在此處閱讀有關EF的信息: http : //msdn.microsoft.com/en-us/data/ef.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM