0

我有一个与 .aspx 页面中的 SqlDataSource1 绑定的 GridView。但是当我使用事件“OnRowUpdating”并使用后面的代码更新它时。发生异常

除非指定了 UpdateCommand,否则数据源“SqlDataSource1”不支持更新。

我正在使用的 Gridview 是

   <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">

和 OnRowUpdaing

   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;
        }
    }

SqlDataSounce 是

  <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:Universal %>"
        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}%'
        ">
        <FilterParameters>
            <asp:ControlParameter Name="ID" ControlID="txtFilter" />
        </FilterParameters>
    </asp:SqlDataSource>
4

1 回答 1

0

我通过在 SqlDataSqouce 中提到 UpdateCommand 来做到这一点

   <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:Universal %>"
        ProviderName="System.Data.SqlClient" SelectCommand="spGetMemberProfile" UpdateCommand="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}%'
        ">
        <FilterParameters>
            <asp:ControlParameter Name="ID" ControlID="txtFilter" />
        </FilterParameters>
    </asp:SqlDataSource>
于 2012-08-30T08:35:08.640 回答