|
| Filter for dataset(datatabel) |
 |
Wed, 2 Apr 2008 12:28:58 +0000 |
I used datatabel for insert values and bind that datatabel to grid view,then
also i edit record,and i bind that value to text box.#region constants
conststring CID = "CID";conststring CardNo = "CardNo";
conststring CardDOI = "CardDOI";conststring CardDOE =
"CardDOE";
DataTable dt = newDataTable();
#endregion
publicDataColumn dcol = newDataColumn();if (lblId.Text == "")
//(for new entry)
{
if (Session["Card"] != null)
{dt = (DataTable)Session["Card"];
}
DataRow drow = dt.NewRow();
drow[CardNo] = Convert.ToString(txtCardNo.Text);
drow[CardDOI] = Convert.ToString(txtCardDOI.Text);drow[CardDOE] =
Convert.ToString(txtCardDOE.Text);
dt.Rows.Add(drow);
dt.AcceptChanges();
gvCard.DataSource = dt;
gvCard.DataBind();Session["Card"] = dt;
txtCardNo.Text = "";txtCardDOI.Text = "";
txtCardDOE.Text = "";lblId.Text = "";
}
else //(for edit)
{dt = (DataTable)Session["Card"];
int counter;counter = Convert.ToInt32(lblId.Text);
dt.Rows[counter]["CardNo"] = txtCardNo.Text
;dt.Rows[counter]["CardDOI"] =
txtCardDOI.Text;dt.Rows[counter]["CardDOE"] = txtCardDOE.Text ;
dt.AcceptChanges();Session["Card"] = dt;
gvCard.DataSource = dt;
gvCard.DataBind();
//bindGrid();txtCardNo.Text = "";
txtCardDOI.Text = "";txtCardDOE.Text = "";lblId.Text =
"";
}
but one problem is that if i delete any record than record deleted sucessefully
but next when i cleck on edit then there are no record found for row number.
so i wants that how can i filter dataset which bind to grid view and if i click
edit in grid then how can i get perticular row of datatabel and update it.
Thanks...
|
| Post Reply
|
| Re: Filter for dataset(datatabel) |
 |
Wed, 2 Apr 2008 12:46:40 +0000 |
Hi,
first let me know what value the lblid textbox holds?
Actually the better way to edit the record is, using the primary key value.
for that primary key value you can find the datarow and modify the needs and
update easily.
Hope this makes sense.
Happy Coding...
|
| Post Reply
|
| Re: Filter for dataset(datatabel) |
 |
Wed, 2 Apr 2008 13:00:21 +0000 |
Hi thanks for replay.
There are lblId is hidden text box where i bind id of record.
One another thing is that i m not use tabel of database.
i use like dataset.
for more information code below that lblIdprotectedvoid gvCard_RowCommand(object
sender, GridViewCommandEventArgs e)
{if (e.CommandName == "change")
{DataTable dt = newDataTable();
lblId.Text = e.CommandArgument.ToString();dt =
(DataTable)Session["Card"];
int counter;counter = Convert.ToInt32(e.CommandArgument.ToString());
string str;
//DataTable dt1;
//dt1 = dt.Select("CID=" + counter );
//foreach (DataRow dr in dt.Select("CID=" + counter))
//{
// dt1.ImportRow(dr);
//}
//DataView dv = dt.DefaultView;
//dv.RowFilter = "counter = CID";
//DataSet ds = new DataSet();
//ds.Tables["dt"].Select("CID=counter");DataView dv =
newDataView(dt);dv.RowFilter = "CID = 0";
dt = dv.Table;
//dt = ds.Tables[0];txtCardNo.Text =
dt.Rows[counter]["CardNo"].ToString();
txtCardDOI.Text =
dt.Rows[counter]["CardDOI"].ToString();txtCardDOE.Text =
dt.Rows[counter]["CardDOE"].ToString();
//Session["Card"] = dt;
}if (e.CommandName == "remove")
{dt =
(DataTable)Session["Card"];dt.Rows.RemoveAt(Convert.ToInt32(e.CommandA
rgument.ToString()));
dt.AcceptChanges();Session["Card"] = dt;
gvCard.DataSource = dt;
gvCard.DataBind();
// bindGrid();
}
}
|
| Post Reply
|
|
|
|
|
|
|
|
|
|