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 |
Is ado.net dead?
What is bubbled event?
What is the difference between ado.net and entity framework?
What Is Difference Between Ado And Ado.net?
Does dapper use ado.net?
What is command class in ado.net?
How can I retrieve two tables of data at a time by using data reader?
What is DataReader Object?
What are the data access namespaces in .NET?
How to insert multiple records in asp .net from Gridview to Sql Database with out using loop condition ?
Define Execute Scalar?
What is the default view of Data Grid?
Visual Basic (800)
C Sharp (3816)
ASP.NET (3180)
VB.NET (461)
COM+ (79)
ADO.NET (717)
IIS (369)
MTS (11)
Crystal Reports (81)
BizTalk (89)
Dot Net (2435)
Exchange Server (362)
SharePoint (720)
WCF (340)
MS Office Microsoft (6963)
LINQ Language-Integrated Query (317)
WPF (371)
TypeScript (144)
Microsoft Related AllOther (311)