簡體   English   中英

數據層的C#類庫-數據表轉換

[英]C# Class Library for Data Layer - DataTable conversion

我正在為“數據層”使用類庫,並且試圖創建一種方法來通過.net DataTable將SP的結果加載到datagrid中。

由於出現錯誤“無法將類型datatable隱式轉換為我的自定義類型 ,因此無法返回datatable(dt)對象。

以下是一些代碼段:

public DesignationTable GetDesignationTable(string designationName)
{
    using (SqlConnection conn = DB.GetSqlConnection())
    {
        DesignationTable dt = new DataTable();

        using (SqlCommand cmd = conn.CreateCommand())
        {
            cmd.CommandText = @"GET_DESG_DETAILS_BY_ATTRIBUTE";
            cmd.CommandType = System.Data.CommandType.StoredProcedure;

            SqlParameter p1 = new SqlParameter("DESG_ATTRIBUTE", System.Data.SqlDbType.Text);
            p1.Value = designationName;

            cmd.Parameters.Add(p1);

            SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            dt.Load(dr);
        }
        return dt;
    }
}

public class DesignationTable
{
    public string DESG_ATTRIBUTE { get; set; }
    public string DESG_ATTRIBUTE_DESC { get; set; }
    public string DESG { get; set; }
    public string DESG_NAME { get; set; }
    public string TYPE { get; set; }
    public string TYPE_DESC { get; set; }
    public string DESG_PROJECT { get; set; }
    public string DESG_PROJECT_DESC { get; set; }
    public DateTime START_DATE { get; set; }
    public DateTime END_DATE { get; set; }
    public string STATUS { get; set; }

    public void Load(SqlDataReader dr)
    {
        DESG_ATTRIBUTE = dr["DESG_ATTRIBUTE"].ToString();
        DESG_ATTRIBUTE_DESC = dr["DESG_ATTRIBUTE_DESC"].ToString();
        DESG = dr["DESG"].ToString();
        DESG_NAME = dr["DESG_NAME"].ToString();
        TYPE = dr["TYPE"].ToString();
        TYPE_DESC = dr["TYPE_DESC"].ToString();
        DESG_PROJECT = dr["DESG_PROJECT"].ToString();
        DESG_PROJECT_DESC = dr["DESG_PROJECT__DESC"].ToString();
        //START_DATE = DateTime.Parse(reader["START_DATE"].ToString());
        //START_DATE = DateTime.Parse(reader["END_DATE"].ToString());
        STATUS = dr["STATUS"].ToString();
    }
}

這行正確嗎?

DesignationTable dt = new DataTable();

不應該

DataTable dt=new DataTable();

然后可以使用.Load()方法。

暫無
暫無

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

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