ASP.Net C#GridView更新无法正常工作

时间:2014-02-20 17:01:59

标签: c# asp.net sql-server gridview

我遇到了问题,但我没有收到任何错误。发生的事情是我有一个存储过程正在推动我的更新,但我无法更新gridview。

我点击Update链接按钮,但实际上并未更新记录。

这是我的存储过程:

ALTER PROCEDURE [dbo].[CompDev_Update](
@CompID int,
@NewDevCount nchar(10) = null,
@DevelopmentName nvarchar(255) = null,
@City nvarchar(255) = null,
@State nvarchar(255) = null,
@ZipCodeofNewDev nchar(10) = null,
@ProjectStatus nvarchar(255) = null,
@ShoppingCenter nvarchar(255) = null,
@ProjectStartDate float = null,
@ProjectDescription nvarchar(255) = null,
@ProposedAnchorTenants nvarchar(255) = null,
@GLA nchar(10) = null,
@EstCompDate float = null,
@Developer nvarchar(255) = null,
@BusinessUnit nchar(10) = null,
@BU nchar(10) = null,
@CenterName nvarchar(255) = null,
@MSA nvarchar(255) = null,
@BrixmorMSARank nchar(10) = null,
@Count nchar(10) = null,
@Region nvarchar(255) = null,
@DistancefromNewDev nchar(10) = null
)
   AS
   BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

-- Insert statements for procedure here
UPDATE WestCompetition Set NewDevCount=@NewDevCount, DevelopmentName=@DevelopmentName,
    City=@City, [State]=@State, ZipCodeofNewDev=@ZipCodeofNewDev, ProjectStatus=@ProjectStatus,
    ShoppingCenter=@ShoppingCenter, ProjectStartDate=@ProjectStartDate, ProjectDescription=@ProjectDescription,
    ProposedAnchorTenants=@ProposedAnchorTenants, GLA=@GLA, EstCompDate=@EstCompDate,
    Developer=@Developer, BusinessUnit=@BusinessUnit, BU=@BU, CenterName=@CenterName,
    MSA=@MSA, BrixmorMSARank=@BrixmorMSARank, [Count]=@Count, Region=@Region,
    DistancefromNewDev=@DistancefromNewDev
    WHERE CompID = @CompID

END

这是我的asp.net c#代码背后:

 protected void gvCompetition_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        Label CompID = (Label)gvCompetition.Rows[e.RowIndex].FindControl("lblCompID");
        TextBox NewDevCount = (TextBox)gvCompetition.Rows[e.RowIndex].FindControl("txtNewDevCount");
        TextBox DevelopmentName = (TextBox)gvCompetition.Rows[e.RowIndex].FindControl("txtDevelopmentName");
        TextBox City = (TextBox)gvCompetition.Rows[e.RowIndex].FindControl("txtCity");
        TextBox State = (TextBox)gvCompetition.Rows[e.RowIndex].FindControl("txtState");
        TextBox ZipCodeofNewDev = (TextBox)gvCompetition.Rows[e.RowIndex].FindControl("txtZipCode");
        TextBox ProjectStatus = (TextBox)gvCompetition.Rows[e.RowIndex].FindControl("txtProjectStatus");
        TextBox ShoppingCenter = (TextBox)gvCompetition.Rows[e.RowIndex].FindControl("txtShoppingCenter");
        TextBox ProjectStartDate = (TextBox)gvCompetition.Rows[e.RowIndex].FindControl("txtProjectStartDate");
        TextBox ProjectDescription = (TextBox)gvCompetition.Rows[e.RowIndex].FindControl("txtProjectDescription");
        TextBox ProposedAnchorTenants = (TextBox)gvCompetition.Rows[e.RowIndex].FindControl("txtProposedAnchorTenants");
        TextBox GLA = (TextBox)gvCompetition.Rows[e.RowIndex].FindControl("txtGLA");
        TextBox EstCompDate = (TextBox)gvCompetition.Rows[e.RowIndex].FindControl("txtEstCompDate");
        TextBox Developer = (TextBox)gvCompetition.Rows[e.RowIndex].FindControl("txtDeveloper");
        TextBox BusinessUnit = (TextBox)gvCompetition.Rows[e.RowIndex].FindControl("txtBusinessUnit");
        TextBox BU = (TextBox)gvCompetition.Rows[e.RowIndex].FindControl("txtBU");
        TextBox CenterName = (TextBox)gvCompetition.Rows[e.RowIndex].FindControl("txtCenterName");
        TextBox MSA = (TextBox)gvCompetition.Rows[e.RowIndex].FindControl("txtMSA");
        TextBox BrixmorMSARank = (TextBox)gvCompetition.Rows[e.RowIndex].FindControl("txtBrixmorMSARank");
        TextBox Count = (TextBox)gvCompetition.Rows[e.RowIndex].FindControl("txtCount");
        TextBox Region = (TextBox)gvCompetition.Rows[e.RowIndex].FindControl("txtRegion");
        TextBox DistancefromNewDev = (TextBox)gvCompetition.Rows[e.RowIndex].FindControl("txtDistancefromNewDev");
        string ecompid = CompID.Text;
        string enewdevcount = NewDevCount.Text;
        string edevelopmentname = DevelopmentName.Text;
        string ecity = City.Text;
        string estate = State.Text;
        string ezipcode = ZipCodeofNewDev.Text;
        string eprojectstatus = ProjectStatus.Text;
        string eshoppingcenter = ShoppingCenter.Text;
        string eprojectstartdate = ProjectStartDate.Text;
        string eprojectdescription = ProjectDescription.Text;
        string eproposedanchor = ProposedAnchorTenants.Text;
        string egla = GLA.Text;
        string eestcompdate = EstCompDate.Text;
        string edeveloper = Developer.Text;
        string ebusinessunit = BusinessUnit.Text;
        string ebu = BU.Text;
        string ecentername = CenterName.Text;
        string emsa = MSA.Text;
        string ebrixmormsarank = BrixmorMSARank.Text;
        string ecount = Count.Text;
        string eregion = Region.Text;
        string edistancefromnewdev = DistancefromNewDev.Text;

        UpdateCompetition(ecompid, enewdevcount, edevelopmentname, ecity, estate, ezipcode, eprojectstatus, eshoppingcenter, eprojectstartdate, eprojectdescription, eproposedanchor,
            egla, eestcompdate, edeveloper, ebusinessunit, ebu, ecentername, emsa, ebrixmormsarank, ecount, eregion, edistancefromnewdev);

        gvCompetition.EditIndex = -1;
        BindCompetition();
    }

    protected void UpdateCompetition(string compid, string newdevcount, string developmentname, string city, string state, string zipcode,
        string projectstatus, string shoppingcenter, string projectstartdate, string projectdescription, string proposedanchor, string gla,
        string estcompdate, string developer, string businessunit, string bu, string centername, string msa, string brixmormsarank,
        string count, string region, string distancefromnewdev)
    {
        SqlConnection conn = new SqlConnection(cnnString);
        conn.Open();
        command = new SqlCommand();
        command.Connection = conn;
        command.CommandType = CommandType.StoredProcedure;
        command.CommandText = "CompDev_Update";

        command.Parameters.Add(new SqlParameter("@CompID", SqlDbType.Int));
        command.Parameters.Add(new SqlParameter("@NewDevCount", SqlDbType.NChar, 10));
        command.Parameters.Add(new SqlParameter("@DevelopmentName", SqlDbType.NVarChar, 255));
        command.Parameters.Add(new SqlParameter("@City", SqlDbType.NVarChar, 255));
        command.Parameters.Add(new SqlParameter("@State", SqlDbType.NVarChar, 255));
        command.Parameters.Add(new SqlParameter("@ZipCodeofNewDev", SqlDbType.NChar, 10));
        command.Parameters.Add(new SqlParameter("@ProjectStatus", SqlDbType.NVarChar, 255));
        command.Parameters.Add(new SqlParameter("@ShoppingCenter", SqlDbType.NVarChar, 255));
        command.Parameters.Add(new SqlParameter("@ProjectStartDate", SqlDbType.Float));
        command.Parameters.Add(new SqlParameter("@ProjectDescription", SqlDbType.NVarChar, 255));
        command.Parameters.Add(new SqlParameter("@ProposedAnchorTenants", SqlDbType.NVarChar, 255));
        command.Parameters.Add(new SqlParameter("@GLA", SqlDbType.NChar, 10));
        command.Parameters.Add(new SqlParameter("@EstCompDate", SqlDbType.Float));
        command.Parameters.Add(new SqlParameter("@Developer", SqlDbType.NVarChar, 255));
        command.Parameters.Add(new SqlParameter("@BusinessUnit", SqlDbType.NChar, 10));
        command.Parameters.Add(new SqlParameter("@BU", SqlDbType.NChar, 10));
        command.Parameters.Add(new SqlParameter("@CenterName", SqlDbType.NVarChar, 255));
        command.Parameters.Add(new SqlParameter("@MSA", SqlDbType.NChar, 10));
        command.Parameters.Add(new SqlParameter("@BrixmorMSARank", SqlDbType.NChar, 10));
        command.Parameters.Add(new SqlParameter("@Count", SqlDbType.NChar, 10));
        command.Parameters.Add(new SqlParameter("@Region", SqlDbType.NVarChar, 255));
        command.Parameters.Add(new SqlParameter("@DistancefromNewDev", SqlDbType.NChar, 10));

        command.Parameters["@CompID"].Value = Convert.ToInt32(compid.ToString());
        command.Parameters["@NewDevCount"].Value = newdevcount;
        command.Parameters["@DevelopmentName"].Value = developmentname;
        command.Parameters["@City"].Value = city;
        command.Parameters["@State"].Value = state;
        command.Parameters["@ZipCodeofNewDev"].Value = zipcode;
        command.Parameters["@ProjectStatus"].Value = projectstatus;
        command.Parameters["@ShoppingCenter"].Value = shoppingcenter;
        command.Parameters["@ProjectStartDate"].Value = projectstartdate;
        command.Parameters["@ProjectDescription"].Value = projectdescription;
        command.Parameters["@ProposedAnchorTenants"].Value = proposedanchor;
        command.Parameters["@GLA"].Value = gla;
        command.Parameters["@EstCompDate"].Value = estcompdate;
        command.Parameters["@Developer"].Value = developer;
        command.Parameters["@BusinessUnit"].Value = businessunit;
        command.Parameters["@BU"].Value = bu;
        command.Parameters["@CenterName"].Value = centername;
        command.Parameters["@MSA"].Value = msa;
        command.Parameters["@BrixmorMSARank"].Value = brixmormsarank;
        command.Parameters["@Count"].Value = count;
        command.Parameters["@Region"].Value = region;
        command.Parameters["@DistancefromNewDev"].Value = distancefromnewdev;

        da = new SqlDataAdapter(command);
        ds = new DataSet();
        da.Fill(ds);

        conn.Close();
    }

这是我的asp.net代码:

<asp:UpdatePanel runat="server" UpdateMode="Conditional">
    <ContentTemplate>
            <asp:GridView ID="gvCompetition" OnPageIndexChanging="gvCompetition_PageIndexChanging" 
                OnRowEditing="gvCompetition_RowEditing" OnRowCancelingEdit="gvCompetition_RowCancelingEdit"
                OnRowUpdating="gvCompetition_RowUpdating"
                runat="server" BackColor="White" BorderColor="#DEDFDE" BorderStyle="None" 
                BorderWidth="1px" CellPadding="1" ForeColor="Black" GridLines="Vertical" 
                AllowPaging="True" AutoGenerateColumns="False" Font-Size="10px">
                <AlternatingRowStyle BackColor="White" />
                <FooterStyle BackColor="#CCCC99" />
                <HeaderStyle BackColor="#7a1501" Font-Bold="True" ForeColor="White" />
                <PagerStyle BackColor="#ed2d22" ForeColor="Black" HorizontalAlign="Right" />
                <RowStyle BackColor="#f68121" BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px" />
                <SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
                <SortedAscendingCellStyle BackColor="#FBFBF2" />
                <SortedAscendingHeaderStyle BackColor="#848384" />
                <SortedDescendingCellStyle BackColor="#EAEAD3" />
                <SortedDescendingHeaderStyle BackColor="#575357" />
                <Columns>
                    <asp:templatefield Headertext="ID">
                        <itemtemplate>
                            <asp:label ID="lblCompID" runat="server" text='<%#Eval("CompID") %>'></asp:label>
                        </itemtemplate>
                    </asp:templatefield>

                    <asp:TemplateField HeaderText="New Dev Count">
                        <ItemTemplate>
                            <asp:Label ID="lblNewDevCount" runat="server" Text='<%#Eval("NewDevCount") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtNewDevCount" Width="100%" runat="server" Text='<%#Eval("NewDevCount") %>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Development Name">
                        <ItemTemplate>
                            <asp:Label ID="lblDevelopmentName" runat="server" Text='<%#Eval("DevelopmentName") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtDevelopmentName" Width="100%" runat="server" Text='<%#Eval("DevelopmentName") %>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="City">
                        <ItemTemplate>
                            <asp:Label ID="lblCity" runat="server" Text='<%#Eval("City") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtCity" Width="100%" runat="server" Text='<%#Eval("City") %>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="State">
                        <ItemTemplate>
                            <asp:Label ID="lblState" runat="server" Text='<%#Eval("State") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtState" Width="100%" runat="server" Text='<%#Eval("State") %>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Zip Code">
                        <ItemTemplate>
                            <asp:Label ID="lblZipCode" runat="server" Text='<%#Eval("ZipCodeofNewDev") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtZipCode" Width="100%" runat="server" Text='<%#Eval("ZipCodeofNewDev") %>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Project Status">
                        <ItemTemplate>
                            <asp:Label ID="lblProjectStatus" runat="server" Text='<%#Eval("ProjectStatus") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtProjectStatus" Width="100%" runat="server" Text='<%#Eval("ProjectStatus") %>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Shopping Center">
                        <ItemTemplate>
                            <asp:Label ID="lblShoppingCenter" runat="server" Text='<%#Eval("ShoppingCenter") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtShoppingCenter" Width="100%" runat="server" Text='<%#Eval("ShoppingCenter") %>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Project Start Date">
                        <ItemTemplate>
                            <asp:Label ID="lblProjectStartDate" runat="server" Text='<%#Eval("ProjectStartDate") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtProjectStartDate" Width="100%" runat="server" Text='<%#Eval("ProjectStartDate") %>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Project Description">
                        <ItemTemplate>
                            <asp:Label ID="lblProjectDescription" runat="server" Text='<%#Eval("ProjectDescription") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtProjectDescription" Width="100%" runat="server" Text='<%#Eval("ProjectDescription") %>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Proposed Anchor Tenants">
                        <ItemTemplate>
                            <asp:Label ID="lblProposedAnchorTenants" runat="server" Text='<%#Eval("ProposedAnchorTenants") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtProposedAnchorTenants" Width="100%" runat="server" Text='<%#Eval("ProposedAnchorTenants") %>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="GLA">
                        <ItemTemplate>
                            <asp:Label ID="lblGLA" runat="server" Text='<%#Eval("GLA") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtGLA" Width="100%" runat="server" Text='<%#Eval("GLA") %>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Est. Completion Date">
                        <ItemTemplate>
                            <asp:Label ID="lblEstCompDate" runat="server" Text='<%#Eval("EstCompDate") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtEstCompDate" Width="100%" runat="server" Text='<%#Eval("EstCompDate") %>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Developer">
                        <ItemTemplate>
                            <asp:Label ID="lblDeveloper" runat="server" Text='<%#Eval("Developer") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtDeveloper" Width="100%" runat="server" Text='<%#Eval("Developer") %>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Business Unit">
                        <ItemTemplate>
                            <asp:Label ID="lblBusinessUnit" runat="server" Text='<%#Eval("BusinessUnit") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtBusinessUnit" Width="100%" runat="server" Text='<%#Eval("BusinessUnit") %>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="BU">
                        <ItemTemplate>
                            <asp:Label ID="lblBU" runat="server" Text='<%#Eval("BU") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtBU" Width="100%" runat="server" Text='<%#Eval("BU") %>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="CenterName">
                        <ItemTemplate>
                            <asp:Label ID="lblCenterName" runat="server" Text='<%#Eval("CenterName") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtCenterName" Width="100%" runat="server" Text='<%#Eval("CenterName") %>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="MSA">
                        <ItemTemplate>
                            <asp:Label ID="lblMSA" runat="server" Text='<%#Eval("MSA") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtMSA" Width="100%" runat="server" Text='<%#Eval("MSA") %>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Brixmor MSA Rank">
                        <ItemTemplate>
                            <asp:Label ID="lblBrixmorMSARank" runat="server" Text='<%#Eval("BrixmorMSARank") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtBrixmorMSARank" Width="100%" runat="server" Text='<%#Eval("BrixmorMSARank") %>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Count">
                        <ItemTemplate>
                            <asp:Label ID="lblCount" runat="server" Text='<%#Eval("Count") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtCount" Width="100%" runat="server" Text='<%#Eval("Count") %>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Region">
                        <ItemTemplate>
                            <asp:Label ID="lblRegion" runat="server" Text='<%#Eval("Region") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtRegion" Width="100%" runat="server" Text='<%#Eval("Region") %>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>

                    <asp:TemplateField HeaderText="Distance from New Dev">
                        <ItemTemplate>
                            <asp:Label ID="lblDistancefromNewDev" runat="server" Text='<%#Eval("DistancefromNewDev") %>'></asp:Label>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:TextBox ID="txtDistancefromNewDev" Width="100%" runat="server" Text='<%#Eval("DistancefromNewDev") %>'></asp:TextBox>
                        </EditItemTemplate>
                    </asp:TemplateField>


                    <asp:TemplateField HeaderText="Edit">
                        <ItemTemplate>
                            <asp:LinkButton ID="btnEdit" Text="EDIT" runat="server" CommandName="Edit" />

                            <span onclick="return confirm('Are you sure you want to delete this record')">
                                <asp:LinkButton ID="btnDelete" Text="DELETE" runat="server" CommandName="Delete" />
                            </span>
                        </ItemTemplate>
                        <EditItemTemplate>
                            <asp:LinkButton ID="btnUpdate" Text="UPDATE" runat="server" CommandName="Update" />
                            <br />
                            <asp:LinkButton ID="btnCancel" Text="CANCEL" runat="server" CommandName="Cancel" />
                        </EditItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="gvCompetition" EventName="PageIndexChanging" />
        <asp:AsyncPostBackTrigger ControlID="gvCompetition" EventName="RowEditing" />
        <asp:AsyncPostBackTrigger ControlID="gvCompetition" EventName="RowUpdating" />
        <asp:AsyncPostBackTrigger ControlID="gvCompetition" EventName="RowCancelingEdit" />
    </Triggers>
</asp:UpdatePanel>

如果更新不会发生,我做错了什么?为什么我没有在没有更新时抛出任何错误?

1 个答案:

答案 0 :(得分:1)

因为您没有执行查询。

尝试

command.ExecuteNonQuery();

或者您需要设置DataAdapter的UpdateCommand属性

da.UpdateCommand = command;