GridView控件:'对象'不包含的定义

时间:2016-10-07 13:44:33

标签: c# webforms visual-studio-2015

我的c#webform有2条错误消息,我自己无法处理。

Add.aspx:

 <%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Add.aspx.cs" Inherits="keszlet_management.Add" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
        <p>
            <br />
        </p>
        <p>
            <asp:GridView ID="GridView1" runat="server"></asp:GridView>
        </p>
    </asp:Content>

Add.aspx.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
using MySql.Data.MySqlClient;

public partial class _Default : System.Web.UI.Page

{
    public object GridView1 { get; private set; }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
            using (MySqlConnection con = new MySqlConnection(constr))
            {
                using (MySqlCommand cmd = new MySqlCommand("SELECT * FROM items"))
                {
                    using (MySqlDataAdapter sda = new MySqlDataAdapter())
                    {
                        cmd.Connection = con;
                        sda.SelectCommand = cmd;
                        using (DataTable dt = new DataTable())
                        {
                            sda.Fill(dt);
                            GridView1.DataSource = dt;
                            GridView1.DataBind();
                        }
                    }
                }
            }
        }
}

我是C#的新手,所以我知道我有几个错误,请关注错误信息: 1。:严重性代码说明项目文件行抑制状态 错误CS1061&#39;对象&#39;不包含&#39; DataSource&#39;的定义没有扩展方法&#39; DataSource&#39;接受类型&#39;对象&#39;的第一个参数。可以找到(你错过了使用指令或汇编参考吗?)
2:使用&#39; DataBind&#39;

的相同消息

2 个答案:

答案 0 :(得分:2)

在这一行:public object GridView1 { get; private set; }。它不应该被声明为GridView而不仅仅是对象吗?查看此处的示例用法:https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.gridview(v=vs.110).aspx

答案 1 :(得分:2)

问题是您已将GridView声明为

public object GridView1 { get; private set; }

这是GridView所以不要将其声明为对象,否则您无法使用GridView的属性或方法,只能使用System.Object的属性或方法,或者你必须把它投射到GridView

由于这是aspx文件的代码隐藏文件,因此您根本不需要声明它。它将在具有相同名称且以.designer.cs结尾的分部类中自动生成。