Update in asp.net gridview when binding with SqlDataSource
<p>I have a GridView that is bind with SqlDataSource1 in .aspx page.But when I use event "OnRowUpdating" and update it with code behind .An exception occur that </p>

<blockquote>
  <p>Updating is not supported by data source 'SqlDataSource1' unless UpdateCommand is specified.</p>
</blockquote>

<p>Gridview that I am using is</p>

<pre><code>   &lt;asp:GridView ID="gdvProfiles" runat="server" AllowPaging="True" AllowSorting="True" DataSourceID="SqlDataSource1"
            OnRowUpdating="updateRecord" OnRowEditing="editRecord" OnRowCancelingEdit="cancelRecord"
            AutoGenerateColumns="False" CellPadding="0" ForeColor="#333333" GridLines="None"
            Style="margin-right: 38px" Font-Size="Small"&gt;
</code></pre>

<p>and OnRowUpdaing</p>

<pre><code>   protected void updateRecord(object sender, GridViewUpdateEventArgs e)
    {
        try
        {
            Label lblusername = gdvProfiles.Rows[e.RowIndex].FindControl("lblusername") as Label;
            TextBox txtname = gdvProfiles.Rows[e.RowIndex].FindControl("txtname") as TextBox;
            TextBox txtsponser = gdvProfiles.Rows[e.RowIndex].FindControl("txtsponser") as TextBox;
            TextBox txtemail = gdvProfiles.Rows[e.RowIndex].FindControl("txtemail") as TextBox;
            TextBox txtdob = gdvProfiles.Rows[e.RowIndex].FindControl("txtdob") as TextBox;

            TextBox txthomecontact = gdvProfiles.Rows[e.RowIndex].FindControl("txthomecontact") as TextBox;
            TextBox txtcontact = gdvProfiles.Rows[e.RowIndex].FindControl("txtcontact") as TextBox;
            TextBox txtaddress = gdvProfiles.Rows[e.RowIndex].FindControl("txtaddress") as TextBox;
            TextBox txtcity = gdvProfiles.Rows[e.RowIndex].FindControl("txtcity") as TextBox;
            TextBox txtstate = gdvProfiles.Rows[e.RowIndex].FindControl("txtstate") as TextBox;
            TextBox txtzipcode = gdvProfiles.Rows[e.RowIndex].FindControl("txtzipcode") as TextBox;
            TextBox txtcountry = gdvProfiles.Rows[e.RowIndex].FindControl("txtcountry") as TextBox;




            BORegistration oBORegistration = new BORegistration();
            BalRegistration oBalRegistration = new BalRegistration();
            oBORegistration.Name = lblusername.Text;

            oBORegistration.Name = txtname.Text;
            oBORegistration.Sponser = txtsponser.Text;
            oBORegistration.Email = txtemail.Text;
            oBORegistration.Dob = txtdob.Text;

            oBORegistration.HomeContact = txthomecontact.Text;
            oBORegistration.Contact = txtcontact.Text;
            oBORegistration.Addressx = txtaddress.Text;
            oBORegistration.City = txtcity.Text;
            oBORegistration.State = txtstate.Text;
            oBORegistration.ZipCode = txtzipcode.Text;
            oBORegistration.Country = txtcountry.Text;



            if (oBalRegistration.Updatememberprofile(oBORegistration))
            {
                gdvProfiles.EditIndex = -1;
                // FillData();
                gdvProfiles.DataBind();
            }
        }
        catch
        {
            throw;
        }
    }
</code></pre>

<p>the SqlDataSounce  is</p>

<pre><code>  &lt;asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="&lt;%$ ConnectionStrings:Universal %&gt;"
        ProviderName="System.Data.SqlClient" SelectCommand="spGetMemberProfile" SelectCommandType="StoredProcedure"
        FilterExpression="Username LIKE '{0}%' OR Name LIKE '{0}%' OR           
        Sponser LIKE '{0}%' OR Email LIKE '{0}%' OR Dob LIKE '{0}%' OR
        HomeContact LIKE '{0}%' OR Contact LIKE '{0}%' OR City LIKE '{0}%' OR
        Statex LIKE '{0}%' OR ZipCode LIKE '{0}%' OR Country LIKE '{0}%'
        "&gt;
        &lt;FilterParameters&gt;
            &lt;asp:ControlParameter Name="ID" ControlID="txtFilter" /&gt;
        &lt;/FilterParameters&gt;
    &lt;/asp:SqlDataSource&gt;
</code></pre>
