Hallo,
Ik ben al een tijdje bezig met een mini CMS in ASP.NET voor school en heb het een en andere aan turorials door gekeken & ook een voorbeeld source zoals deze gevonden. Alleen deze werkt met een soort van virtueke database in het geheugen, hoe kan ik er voor zorgen dat deze werkt (dus update/delete & insert naar mn "acces database". De connect is nog wel te maken, maar weet niet precies waar ie wat doet en waar ik dan de database commands moet zetten (oleDb)
Code
public DataTable Cart;
public DataView CartView;
void Page_Load(Object Sender, EventArgs E) {
if (Session["DL3_ShoppingCart"] == null) {
Cart = new DataTable();
Cart.Columns.Add(new DataColumn("Qty", typeof(string)));
Cart.Columns.Add(new DataColumn("Item", typeof(string)));
Cart.Columns.Add(new DataColumn("Price", typeof(string)));
Session["DL3_ShoppingCart"] = Cart;
// first load -- prepopulate with some data
for (int i=1; i<5; i++) {
DataRow dr = Cart.NewRow();
dr[0] = ((int)((i%2)+1)).ToString();
dr[1] = "Item " + i.ToString();
dr[2] = ((double)(1.23 * (i+1))).ToString();
Cart.Rows.Add(dr);
}
}
else
Cart = (DataTable)Session["DL3_ShoppingCart"];
CartView = new DataView(Cart);
CartView.Sort = "Item";
if (!IsPostBack)
BindList();
}
void BindList() {
DataList1.DataSource= CartView;
DataList1.DataBind();
}
void DataList_EditCommand(Object Sender, DataListCommandEventArgs e) {
DataList1.EditItemIndex = (int)e.Item.ItemIndex;
BindList();
}
protected void DataList_CancelCommand(Object Sender, DataListCommandEventArgs e) {
DataList1.EditItemIndex = -1;
BindList();
}
protected void DataList_UpdateCommand(Object Sender, DataListCommandEventArgs e) {
string item = ((System.Web.UI.WebControls.Label)e.Item.FindControl("Label1")).Text;
string qty = ((System.Web.UI.WebControls.TextBox)e.Item.FindControl("Text1")).Text;
string price = ((System.Web.UI.WebControls.TextBox)e.Item.FindControl("Text2")).Text;
// with a database, we'd use an update command. Since we're using an in-memory
// DataTable, we'll delete the old row and replace it with a new one
//remove old entry
CartView.RowFilter = "Item='"+item+"'";
if (CartView.Count > 0) //item exists in cart
CartView.Delete(0);
CartView.RowFilter = "";
//add new entry
DataRow dr = Cart.NewRow();
dr[0] = qty;
dr[1] = item;
dr[2] = price;
Cart.Rows.Add(dr);
DataList1.EditItemIndex = -1;
BindList();
}
Ik ben al een tijdje bezig met een mini CMS in ASP.NET voor school en heb het een en andere aan turorials door gekeken & ook een voorbeeld source zoals deze gevonden. Alleen deze werkt met een soort van virtueke database in het geheugen, hoe kan ik er voor zorgen dat deze werkt (dus update/delete & insert naar mn "acces database". De connect is nog wel te maken, maar weet niet precies waar ie wat doet en waar ik dan de database commands moet zetten (oleDb)
Code
public DataTable Cart;
public DataView CartView;
void Page_Load(Object Sender, EventArgs E) {
if (Session["DL3_ShoppingCart"] == null) {
Cart = new DataTable();
Cart.Columns.Add(new DataColumn("Qty", typeof(string)));
Cart.Columns.Add(new DataColumn("Item", typeof(string)));
Cart.Columns.Add(new DataColumn("Price", typeof(string)));
Session["DL3_ShoppingCart"] = Cart;
// first load -- prepopulate with some data
for (int i=1; i<5; i++) {
DataRow dr = Cart.NewRow();
dr[0] = ((int)((i%2)+1)).ToString();
dr[1] = "Item " + i.ToString();
dr[2] = ((double)(1.23 * (i+1))).ToString();
Cart.Rows.Add(dr);
}
}
else
Cart = (DataTable)Session["DL3_ShoppingCart"];
CartView = new DataView(Cart);
CartView.Sort = "Item";
if (!IsPostBack)
BindList();
}
void BindList() {
DataList1.DataSource= CartView;
DataList1.DataBind();
}
void DataList_EditCommand(Object Sender, DataListCommandEventArgs e) {
DataList1.EditItemIndex = (int)e.Item.ItemIndex;
BindList();
}
protected void DataList_CancelCommand(Object Sender, DataListCommandEventArgs e) {
DataList1.EditItemIndex = -1;
BindList();
}
protected void DataList_UpdateCommand(Object Sender, DataListCommandEventArgs e) {
string item = ((System.Web.UI.WebControls.Label)e.Item.FindControl("Label1")).Text;
string qty = ((System.Web.UI.WebControls.TextBox)e.Item.FindControl("Text1")).Text;
string price = ((System.Web.UI.WebControls.TextBox)e.Item.FindControl("Text2")).Text;
// with a database, we'd use an update command. Since we're using an in-memory
// DataTable, we'll delete the old row and replace it with a new one
//remove old entry
CartView.RowFilter = "Item='"+item+"'";
if (CartView.Count > 0) //item exists in cart
CartView.Delete(0);
CartView.RowFilter = "";
//add new entry
DataRow dr = Cart.NewRow();
dr[0] = qty;
dr[1] = item;
dr[2] = price;
Cart.Rows.Add(dr);
DataList1.EditItemIndex = -1;
BindList();
}
[ Voor 5% gewijzigd door Fr0zenFlame op 17-06-2005 12:45 ]
i7-6700K | Z170A XPOWER GAMING TITANIUM EDITION | InWin904 | 32GB Corsair Dominator Platinum | nVidia GeForce RTX2080 TI | Iiyama G-Master UWQH 34" | 2x 1TB Samsung SSD 980PRO | 1x 4TB Samsung 860EVO | Arctis 7 | SteelSeries Apex Pro | Logitech G502 Hero