Am Updating the gridview with codebehind and stored procedure with 3 layers. I am having trouble while displaying,(Updating is not supported by data source 'SqlDataSource2' unless UpdateCommand is specified.) but updating is done to database. Here is my code
<asp:gridview runat="server" AutoGenerateColumns="False" CellPadding="4" OnRowCommand = "GVEditRate_Command"
ForeColor="#333333" GridLines="None" ID="GVEditRate" OnRowUpdating ="GVEditRate_OnRowUpdating"
DataSourceID="SqlDataSource2" >
....
SelectCommand="SELECT [Bill_Item], [Rate_Cat_Id], [Item_Rate], [Professional_Charge], [Anes_Charge], [Effective_Date] FROM [Rate_M] WHERE (([Active_Flag] = @Active_Flag) AND ([Bill_Item] = @Bill_Item))" >
<SelectParameters>
<asp:Parameter DefaultValue="Y" Name="Active_Flag" Type="String" />
<asp:ControlParameter ControlID="TB_ItemCode" Name="Bill_Item"
PropertyName="Text" Type="String" />
</SelectParameters>
Code behind
protected void GVEditRate_OnRowUpdating(object sender, GridViewUpdateEventArgs e)
{
Business bz = new Business();
rate_data rd = new rate_data();
rd.itemcode = (GVEditRate.Rows[e.RowIndex].FindControl("Label1") as Label).Text;
rd.ratecategory = (GVEditRate.Rows[e.RowIndex].FindControl("Label2") as Label).Text;
string itmrt = (GVEditRate.Rows[e.RowIndex].FindControl("TextBox1") as TextBox).Text;
rd.itemrate = Convert.ToDouble(itmrt);
string prf = (GVEditRate.Rows[e.RowIndex].FindControl("TextBox2") as TextBox).Text;
rd.profesionalchg = Convert.ToDouble(prf);
string anes = (GVEditRate.Rows[e.RowIndex].FindControl("TextBox3") as TextBox).Text;
rd.ansthcharge = Convert.ToDouble(anes);
rd.effective_date = DateTime.Now;
rd.LogId = Convert.ToDouble(Session["LogId"]);
rd.ShiftId = Convert.ToInt16(Session["ShiftID"]);
rd.Userid = Convert.ToString(Session["User"]);
rd.Actv_flag = "Y";
int upd_rate = bz.update_rate(rd);
if (upd_rate > 0)
{
ClientScript.RegisterStartupScript(Page.GetType(), "validation",
"<script language='javascript'>alert('Rate updation successful')</script>");
}
else
{
ClientScript.RegisterStartupScript(Page.GetType(), "validation",
"<script language='javascript'>alert('could not update rate')</script>");
}
}