Satte mig härom dan och försökte mig på det här med DAL nu. Jag vet inte om jag har fattat det rätt eller är koden helt åt skogen?
I mitt csproj gjorde jag fyra mappar:
- Entities
- DAL
- BLL
- UI
Sedan så testade jag att göra ett nyhets arkiv. Jag är fortfarande fundersam på hur jag ska döpa sakerna, nu så heter allt samma. Men iaf, så här gjorde jag:
NewsDetails.cs (Försökte göra något med namnet så att inte allt skulle blir news.)
namespace LinkopingLife.Entities
{
public class NewsDetails
{
public NewsDetails() { }
public NewsDetails(int id, string title, string text, DateTime date)
{
this.ID = id;
this.Title = title;
this.Text = text;
this.Date = date;
}
private int _id = 0;
public int ID
{
get { return _id; }
set { _id = value; }
}
private string _title = "";
public string Title
{
get { return _title; }
set { _title = value; }
}
private string _text = "";
public string Text
{
get { return _text; }
set { _text = value; }
}
private DateTime _date = DateTime.Now;
public DateTime Date
{
get { return _date; }
set { _date = value; }
}
}
}
News.cs (Funderar på att döpa den här till t.ex NewsProvider.cs, rätt eller fel?)
namespace LinkopingLife.DAL
{
public class News
{
public List<NewsDetails> GetAllNews()
{
using (IDbCommand objCommand = new MySqlCommand())
{
objCommand.CommandText = "SELECT intID, strTitle, txtText, dtmNow FROM tblForumThreads WHERE intForumID = 16";
using (DataTable dataTable = new DataAccess().ExecuteDataTableResult(ConfigurationManager.AppSettings["DatabaseConnection"], objCommand))
{
List<NewsDetails> newsList = new List<NewsDetails>();
foreach (DataRow objDataRow in dataTable.Rows)
{
NewsDetails news = new NewsDetails();
news.ID = Convert.ToInt32(objDataRow["intID"]);
news.Title = Convert.ToString(objDataRow["strTitle"]);
news.Text = Convert.ToString(objDataRow["txtText"]);
news.Date = Convert.ToDateTime(objDataRow["dtmNow"]);
newsList.Add(news);
}
return newsList;
}
}
}
}
}
News.cs
namespace LinkopingLife.BLL
{
public class News
{
public List<Entities.NewsDetails> GetAllNews()
{
DAL.News dal = new DAL.News();
return dal.GetAllNews();
}
}
}
NewsArchive.aspx.cs (Anledningen till att den heter Archive är att på den här sidan ska jag hämta ut alla nyheter. Sen så vill jag kunna hämta ut den nyaste nyheten på start sidan sen.)
namespace LinkopingLife.UI
{
public partial class _NewsArchive : System.Web.UI.Page
{
protected Repeater repNews;
protected void Page_Load(object sender, EventArgs e)
{
BLL.News bll = new BLL.News();
List<Entities.NewsDetails> newsList = bll.GetAllNews();
repNews.DataSource = newsList;
repNews.DataBind();
}
}
}
Tänkte gå vidare nu med att hämta den senaste nyheten och efter ID. Men först vill jag se om jag har gjort rätt eller fel, och framför allt vad som kan förbättras. Sedan så har jag inte kommit fram till än hur jag ska göra med parametrarna. Det lättaste vore väll att skicka med värdena från UI till BLL. Sedan från BLL till DAL där jag sätter parametrarna, eller?