Groups > Databases > Access Databases and AccessDataSource Control > Re: Filter for dataset(datatabel)




Filter for dataset(datatabel)

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
about | contact