Google Brother Up

2008/05/22

Add Data to the DataTable (in earlier post)

public void addDataToDataTable()
{
FreshCart fc = new FreshCart();
DataSet ds = new DataSet();
ViewState["ProdID"] = Request.QueryString["ProductID"];
ds = fc.GetProductDetailsByProductID(Convert.ToInt32(ViewState["ProdID"]));
System.Data.DataTable table = new DataTable("ManageShoppingCartTable");
table = (DataTable)(Session["DataTableHolder"]);
DataRow row;
row = table.NewRow();
row["ProductID"] = Convert.ToInt32(ds.Tables[0].Rows[0][("ProductID")]);
row["ProductName"] = ds.Tables[0].Rows[0][("ProductName")].ToString().Trim();
//if (table.Rows.Count < 1)
//{
row["Quantity"] = 1;
//}
//else if (table.Rows.Count >= 1)
//{
// row["Quantity"] = Convert.ToInt32(gvManageShoppingCart.FindControl("txtQuantity.Text"));
//}
row["Price"] = Convert.ToDouble(ds.Tables[0].Rows[0][("Price")].ToString().Trim());
row["NetPrice"] = Convert.ToInt32(row["Quantity"].ToString()) * Convert.ToDouble(row["Price"]);
//row["NetPrice"] = 2*Convert.ToDouble(row["Price"]);
//int s = 0;
int rowVal = Convert.ToInt32(row["ProductID"]);
bool blnIsProductExist = false;
// if current product id is already present then dont insert the row.
if (Convert.ToInt32(table.Rows.Count) == 0)
{
table.Rows.Add(row);
}
else
{
for (int i = 0; i < table.Rows.Count; i++)
{
//int rowVal = Convert.ToInt32(row["ProductID"]);
if (Convert.ToInt32(table.Rows[i][0]) == rowVal)
{
//s = s + 1;
blnIsProductExist = true;
}
else
{
//s = 0;
}
}


if (!blnIsProductExist)
{
lblMessageUpdate.Visible = false;
table.Rows.Add(row);
}

else
{
lblMessageUpdate.Visible = true;
lblMessageUpdate.Text = "The data is already present and cannot be updated".ToString();
}
}
lblFlag.Text = "1"; //set the flag to avoid postback after populating the gridview
Session["DataTableHolder"] = table;
gvManageShoppingCart.DataSource = ((DataTable)table).DefaultView;
gvManageShoppingCart.DataBind();
}

Create a DataTable


public void createSecondDataTable()
{
// Create a new DataTable.
System.Data.DataTable table = new DataTable("UpdatedManageShoppingCartTable");
// Declare variables for DataColumn and DataRow objects.
DataColumn column;


//Add 1st Column
column = new DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.ColumnName = "ProductID";
//column.ReadOnly = true;
column.Unique = true;
//Add Column to table
table.Columns.Add(column);


//Add 2nd Column
column = new DataColumn();
column.DataType = System.Type.GetType("System.String");
column.ColumnName = "ProductName";
//column.ReadOnly = true;
column.Unique = false;
//Add Column to table
table.Columns.Add(column);


//Add 3rd Column
column = new DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.ColumnName = "Quantity";
//column.ReadOnly = true;
column.Unique = false;
//Add Column to table
table.Columns.Add(column);


//Add 4th Column
column = new DataColumn();
column.DataType = System.Type.GetType("System.Double");
column.ColumnName = "Price";
//column.ReadOnly = true;
column.Unique = false;
//Add Column to table
table.Columns.Add(column);


//Add 5th Column
column = new DataColumn();
column.DataType = System.Type.GetType("System.Double");
column.ColumnName = "NetPrice";
//column.ReadOnly = true;
column.Unique = false;


//Add Column to table
table.Columns.Add(column);

//Make the ProductID column the primary column
DataColumn[] PrimaryKeyColumns = new DataColumn[1];
PrimaryKeyColumns[0] = table.Columns["ProductID"];
table.PrimaryKey = PrimaryKeyColumns;


//Instantiate the dataset
//DataSet dataset = new DataSet();
//Add datatable to the dataset
//dataset.Tables.Add(table);
Session["UpdatedManageShoppingCartTableHolder"] = table;
}

2008/05/08

THIS DATASOURCE DOES NOT SUPPORT SERVER-SIDE DATA PAGING

To solve this problem (THIS DATASOURCE DOES NOT SUPPORT SERVER-SIDE DATA PAGING ), you must set GridView DataSource Property as DataSet not DataReader .

2008/05/07

An Example of Column Sorting

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
namespace CartTest
{
public partial class RevenueReport : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
lblGrandTotal.Visible = false;
}
}
public void populateGridView()
{
FreshCart fc = new FreshCart();
fc.RevenueReportFromDate = Convert.ToDateTime(txtFromDate.Text.Trim());
fc.RevenueReportToDate = Convert.ToDateTime(txtToDate.Text.Trim());
DataSet ds = new DataSet();
ds = fc.populategvRevenueReport();
ViewState["SortExpression"] = "OrderDate";
ViewState["SortDirection"] = "DESC";
// check whether the date is present or not
string returnValue;
returnValue = ds.Tables[0].Rows[0][("ReturnValue")].ToString().Trim();
if (returnValue == "0")
{
//no matching date
gvRevenueReport.Visible = false;
lblGrandTotal.Visible = false;
lblQtyTotal.Visible = false;
lblRevenueTotal.Visible = false;
lblMessage.Visible = true;
lblMessage.Text = "No Matching Date";
}
else if (returnValue == "1")
{
lblMessage.Visible = false;
gvRevenueReport.Visible = true;
gvRevenueReport.DataSource = ds.Tables[1].DefaultView;
ViewState["DataSource"] = ds.Tables[1];
lblGrandTotal.Visible = true;
lblQtyTotal.Visible = true;
lblQtyTotal.Text = ds.Tables[2].Rows[0][("Qty_Total")].ToString().Trim();
lblRevenueTotal.Visible = true;
lblRevenueTotal.Text = ds.Tables[3].Rows[0][("Revenue_Total")].ToString().Trim();
gvRevenueReport.DataBind();
PopulateDetails(ViewState["SortExpression"].ToString(), ViewState["SortDirection"].ToString());
}
}
protected void btnGo_Click(object sender, EventArgs e)
{
populateGridView();
}
public void PopulateDetails(string strSortExp, string strSortDir)
{
DataView dv = ((DataTable)ViewState["DataSource"]).DefaultView;
DataTable NewsTable = dv.ToTable();
DataView NewsView = NewsTable.DefaultView;
if (NewsView != null)
{
NewsView.Sort = strSortExp + " " + strSortDir;
gvRevenueReport.DataSource = NewsView;
gvRevenueReport.DataBind();
}
}
protected void gvRevenueReport_Sorting(object sender, GridViewSortEventArgs e)
{
string SortExpression = e.SortExpression;
ViewState["SortExpression"] = SortExpression;
if (ViewState["SortDirection"].ToString() == "DESC")
{
ViewState["SortDirection"] = "ASC";
}
else
{
ViewState["SortDirection"] = "DESC";
}
PopulateDetails(ViewState["SortExpression"].ToString(), ViewState["SortDirection"].ToString());
}
}
}

Some Tough Abbreviations

MIME - Multipurpose Internet Mail Extensions

Drop Down List

1. http://www.janetsystems.co.uk/Articles/NetArticles/tabid/74/itemid/161/modid/449/Default.aspx