How To Update A Column In A DataGrid Using C#.NET?
I am getting InvalidCastException as (Specified cast is not
valid) while updating 2nd column in a datagrid?
Id,firstname,lastname are the three columns of my datagrid
respectively. I wanted to edit the second column(lastname)
and update it. I did the following code in DataGrid's
updatecommand(),but failed to update !
Int varid=(int)DataGrid1.DataKeys[e.Item.ItemIndex];
TextBox lnm=(TextBox)e.Item.Cells[2].Controls[0]; string
str=lnm.Text ; SqlCommand cmd=new SqlCommand("update
customer set lastname='" + str + "' where id=" + varid
+ "",con); cmd.ExecuteNonQuery(); DataGrid1.EditItemIndex=-
1; DataGrid1.DataBind();
Answers were Sorted based on User's Feedback
Answer / aravazhi
Try this query you can avoid InvalidCastException...
string strQry = "update customer set lastname=@LastName
where id=@VarId";
SqlCommand cmd=new SqlCommand(strQry,con);
int varid = (int)DataGrid1.DataKeys[(int)e.Item.ItemIndex];
string LName = ((TextBox)e.Item.FondControl
("txtLName")).Text;//txtLname is ID of control
cmd.Paramters.Add(new SqlParameter("@LastName",LName));
cmd.Paramters.Add(new SqlParameter("@VarId",varid));
cmd.ExecuteNonQuery();
DataGrid1.EditItemIndex=- 1;
DataGrid1.DataBind();
Is This Answer Correct ? | 15 Yes | 4 No |
Answer / pk
public void DataGrid1_Update(Object sender,
DataGridCommandEventArgs e)
{
string unitprice =
((TextBox)e.Item.Cells[3].Controls[0]).Text;
string quantity =
((TextBox)e.Item.Cells[4].Controls[0]).Text;
string discount =
((TextBox)e.Item.Cells[5].Controls[0]).Text;
int orderid =
(int)DataGrid1.DataKeys[(int)e.Item.ItemIndex];
string productid =
((TextBox)e.Item.Cells[2].Controls[0]).Text;
try
{
string updateCmd = "UPDATE [Order Details] SET
UnitPrice = @UnitPrice,"
+ "Quantity = @Quantity, Discount = @Discount
where OrderId =@OrderId and ProductId=@ProductId";
SqlConnection cn = new SqlConnection(strConn);
SqlCommand myCommand = new SqlCommand(updateCmd,
cn);
myCommand.Parameters.Add(new
SqlParameter("@UnitPrice", Convert.ToDecimal(unitprice)));
myCommand.Parameters.Add(new
SqlParameter("@Quantity", Convert.ToInt16(quantity)));
myCommand.Parameters.Add(new
SqlParameter("@Discount", Convert.ToInt16(discount)));
myCommand.Parameters.Add(new
SqlParameter("@OrderId", orderid));
myCommand.Parameters.Add(new
SqlParameter("@ProductId", Convert.ToInt16(productid)));
cn.Open();
myCommand.ExecuteNonQuery();
DataGrid1.EditItemIndex = -1;
BindGrid();
}
catch (Exception ex)
{
lblError.Visible = true;
lblError.Text = (ex.Message);
}
Is This Answer Correct ? | 2 Yes | 5 No |
What is the difference between Dataset. clone and Dataset.copy?
Difference between DataReader and DataAdapter / DataSet and DataAdapter?
What are the namespaces used in ado.net for data access?
What is the default timeout specified for "sqlcommand.commandtimeout" property?
What are the features of ado.net?
What is the advantage of ado.net?
Which provider is used to connect ms access, oracle, etc…?
What is a datatable?
8 Answers State Bank Of India SBI,
What are the objects of ado.net?
How can I retrieve two tables of data at a time by using data reader?
What are the key events of sqlconnection class?
What is serialization and de-serialization in .net?