Привет всем,
Я новичок в C # и заинтересован в лучшем решении моего дела.
У меня есть метод, который получает DataTable в качестве параметра, создает список с переменными MyClass и возвращает его.
public static List<Campaigns> GetCampaignsList(DataTable DataTable)
{
List<Campaigns> ListCampaigns = new List<Campaigns>();
foreach (DataRow row in DataTable.Rows)
{
Campaigns Campaign = new Campaigns();
Campaign.CampaignID = Convert.ToInt32(row["CampaignID"]);
Campaign.CustomerID = Convert.ToInt32(row["CustomerID"]);
Campaign.ClientID = Convert.ToInt32(row["ClientID"]);
Campaign.Title = row["Title"].ToString();
Campaign.Subject = row["Subject"].ToString();
Campaign.FromName = row["FromName"].ToString();
Campaign.FromEmail = row["FromEmail"].ToString();
Campaign.ReplyEmail = row["ReplyEmail"].ToString();
Campaign.AddDate = Convert.ToDateTime(row["AddDate"]);
Campaign.UniqueRecipients = Convert.ToInt32(row["UniqueRecipients"]);
Campaign.ClientReportVisible = Convert.ToBoolean(row["ClientReportVisible"]);
Campaign.Status = Convert.ToInt16(row["Status"]);
ListCampaigns.Add(Campaign);
}
return ListCampaigns;
}
И один из моих других методов DataTable получает DataTable из базы данных с заданными параметрами. Вот метод.
public static DataTable GetNewCampaigns()
{
DataTable dtCampaigns = new DataTable();
Campaigns Campaigns = new Campaigns();
dtCampaigns = Campaigns.SelectStatus(0);
return dtCampaigns;
}
Но проблема в том, что этот метод GetNewCampaigns не принимает параметры, но другие методы могут принимать параметры. Например, когда я пытаюсь выбрать кампанию с CampaignID, я должен отправить CampaignID в качестве параметра. Все эти методы базы данных принимают тип возвращаемого значения в качестве DataTable, но разное количество параметров.
public static DataTable GetCampaignDetails(int CampaignID)
{
DataTable dtCampaigns = new DataTable();
Campaigns Campaigns = new Campaigns();
dtCampaigns = Campaigns.Select(CampaignID);
return dtCampaigns;
}
В конце я хочу передать делегат моему первому методу GetCampaignList в качестве параметра, который определит, какой метод базы данных вызывать. Я не хочу передавать DataTable в качестве параметра, так как это новичок в программировании.
Не могли бы вы помочь мне изучить некоторые дополнительные функции.
Я искал его и получил делегат Func <>, но не смог найти решение.