代码之家  ›  专栏  ›  技术社区  ›  salvationishere

类型“默认”已包含定义

  •  4
  • salvationishere  · 技术社区  · 14 年前

    我正在开发一个C_vs 2008/SQL Server 2008网站。我有一个网格视图。我在下面包含了default.aspx和aspx.cs文件。但当我构建这个模型时,我会得到以下错误:

    类型“default”已包含 “btnowrite”的定义

    我需要做什么来解决这个问题?我现在没有得到任何错误,只是这个网格没有出现。谢谢!

    ASPX文件:

    <%@ Page Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" Title="Untitled Page" %>
    
    <asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="Server">
        <asp:Panel runat="server" ID="AuthenticatedMessagePanel">
            <asp:Label runat="server" ID="WelcomeBackMessage"></asp:Label>
            <table>
                <tr>
                    <td>
                        <asp:Label ID="tableLabel" runat="server" Font-Bold="True" Text="Select target table:"></asp:Label>
                    </td>
                    <td>
                        <asp:Label ID="inputLabel" runat="server" Font-Bold="True" Text="Select input file:"></asp:Label>
                    </td>
                </tr>
                <tr>
                    <td valign="top">
                        <asp:Label ID="feedbackLabel" runat="server"></asp:Label>
                        <asp:SqlDataSource ID="SelectTables" runat="server" ConnectionString="<%$ ConnectionStrings:AdventureWorks3_SelectTables %>"
                            SelectCommand="getTableNames" SelectCommandType="StoredProcedure">
                            <SelectParameters>
                                <asp:QueryStringParameter DefaultValue="Person" Name="SchemaName" QueryStringField="SchemaName"
                                    Type="String" />
                            </SelectParameters>
                        </asp:SqlDataSource>
                        <asp:GridView ID="GridView1" DataSourceID="SelectTables" runat="server" Style="width: 400px;"
                            CellPadding="4" ForeColor="#333333" GridLines="None" OnSelectedIndexChanged="GridView1_SelectedIndexChanged"
                            AutoGenerateSelectButton="True" DataKeyNames="TABLE_NAME">
                            <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                            <Columns>
                                <asp:BoundField HeaderText="TABLE_NAME" DataField="TABLE_NAME" />
                            </Columns>
                            <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                            <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                            <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                            <EditRowStyle BackColor="#999999" />
                            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                        </asp:GridView>
                    </td>
                    <td valign="top">
                        <input id="uploadFile" type="file" size="26" runat="server" name="uploadFile" title="UploadFile" class="greybar" enableviewstate="True" />
                    </td>
                </tr>
            </table>
    
            <table>
    <tr>
    <td style="width:150px; height:50px"></td>
    <td valign="bottom" style="width:150px; height:50px">
         <input id="btnOWrite" type="submit" value="Overwrite Data" runat="server" class="greybar"
                          onserverclick="btnOWrite_Click" name="btnOWrite" />&nbsp;
                          </td>
    <td style="width:100px"></td>
    
    <td valign="bottom" style="width:150px; height:50px">
        <input id="btnAppend" type="submit" value="Append Data" runat="server" class="greybar" onserverclick="btnAppend_Click" name="btnAppend" /> 
    </td>
    </tr>
    </table>
    
        </asp:Panel>
        <asp:Panel runat="Server" ID="AnonymousMessagePanel">
            <asp:HyperLink runat="server" ID="lnkLogin" Text="Log In" NavigateUrl="~/Login.aspx">
            </asp:HyperLink>
        </asp:Panel>
    </asp:Content>
    

    ASPX.CS文件:

    public partial class _Default : System.Web.UI.Page
    
    //namespace AddFileToSQL
    {
            //protected System.Web.UI.HtmlControls.HtmlInputFile uploadFile;
            protected System.Web.UI.HtmlControls.HtmlInputButton btnOWrite;
            protected System.Web.UI.HtmlControls.HtmlInputButton btnAppend;
            protected System.Web.UI.WebControls.Label Label1;
            protected static string inputfile = "";
            public static string targettable;
            public static string selection;
    
            // Number of controls added to view state
            protected int default_NumberOfControls
            {
                get
                {
                    if (ViewState["default_NumberOfControls"] != null)
                    {
                        return (int)ViewState["default_NumberOfControls"];
                    }
                    else
                    {
                        return 0;
                    }
                }
                set
                {
                    ViewState["default_NumberOfControls"] = value;
                }
            }
    
            protected void uploadFile_onclick(object sender, EventArgs e)
            {
            }
    
            protected void Load_GridData()
            {
                //GridView1.DataSource = ADONET_methods.DisplaySchemaTables();
                //GridView1.DataBind();
            }
    
            protected void btnOWrite_Click(object sender, EventArgs e)
            {
                if (uploadFile.PostedFile.ContentLength > 0)
                {
                    feedbackLabel.Text = "You do not have sufficient access to overwrite table records.";
                }
                else
                {
                    feedbackLabel.Text = "This file does not contain any data.";
                }
            }
    
            protected void btnAppend_Click(object sender, EventArgs e)
            {
                string fullpath = Page.Request.PhysicalApplicationPath;
    
                string path = uploadFile.PostedFile.FileName;
    
                if (File.Exists(path))
                {
                    // Create a file to write to.
                    try
                    {
                        StreamReader sr = new StreamReader(path);
                        string s = "";
                        while (sr.Peek() > 0)
                            s = sr.ReadLine();
                        sr.Close();
                    }
                    catch (IOException exc)
                    {
                        Console.WriteLine(exc.Message + "Cannot open file.");
                        return;
                    }
                }
    
                if (uploadFile.PostedFile.ContentLength > 0)
                {
    
                    inputfile = System.IO.File.ReadAllText(path);
                    Session["Message"] = inputfile;
                    Response.Redirect("DataMatch.aspx");
                }
                else
                {
                    feedbackLabel.Text = "This file does not contain any data.";
                }
            }
    
            protected void Page_Load(object sender, EventArgs e)
            {
                if (Request.IsAuthenticated)
                {
                    WelcomeBackMessage.Text = "Welcome back, " + User.Identity.Name + "!";
    
                    // Reference the CustomPrincipal / CustomIdentity
                    CustomIdentity ident = User.Identity as CustomIdentity;
                    if (ident != null)
                        WelcomeBackMessage.Text += string.Format(" You are the {0} of {1}.", ident.Title, ident.CompanyName);
    
                    AuthenticatedMessagePanel.Visible = true;
                    AnonymousMessagePanel.Visible = false;
                    if (!Page.IsPostBack)
                    {
                        Load_GridData();
                    }                                
                }
                else
                {
                    AuthenticatedMessagePanel.Visible = false;
                    AnonymousMessagePanel.Visible = true;
                }
            }
    
            protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
            {
                GridViewRow row = GridView1.SelectedRow;
                targettable = row.Cells[2].Text;
            }
        }
    
    3 回复  |  直到 12 年前
        1
  •  6
  •   Seattle Leonard    14 年前

    当您有一个声明性的控件时,例如

    <asp:Button ID="someID" runat="server" />
    

    它实例化一个名为 someID . 如果你看看你的班,你就会看到这一行

    protected System.Web.UI.HtmlControls.HtmlInputButton btnOWrite;
    

    基本上,您已经声明了两个同名的控件。一个在标记中,一个在代码后面。只需从代码隐藏文件中删除声明。

        2
  •  2
  •   abatishchev Karl Johan    14 年前

    可能,文件中的类 Default.Designer.cs 包含两个声明 btnOWrite .

    尝试删除至少一个或两个变量。

    或者,如果您的项目是Web应用程序,请删除整个设计器文件并在 Default.aspx 选择“转换为Web应用程序”,这将重新生成设计器文件。

        3
  •  0
  •   Mike Beeler    12 年前

    如果将新文件添加到现有的Web项目中时,添加了一个文件(.aspx)并将其正确移入,并且在不删除旧引用的情况下将对该文件的引用添加到新位置,则会发生此错误。在整个项目(搜索文件)中搜索重复的符号,这将显示重复引用存在的文件。