[英]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.