【问题标题】:Getting data from sql table inside a GridView (C#)从 GridView (C#) 中的 sql 表中获取数据
【发布时间】:2015-05-29 11:38:32
【问题描述】:

我有一个GridView,它是在 ASP.NET 中制作的。现在我希望它用这种方法填充自己。但它不起作用。 return() 不起作用,Page_load 内的 GetData 也带有红色下划线(编译器错误 CS1501)。

 public partial class Pages_GridView1 : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {
        GetData();
    }


    public string GetData(Chart chart)
    {

        string connStr = ConfigurationManager.ConnectionStrings["CRM_SQL"].ConnectionString;
        SqlConnection conn = new SqlConnection(connStr);
        conn.Open();
        SqlCommand query = new SqlCommand(chart.Sql, conn);
        SqlDataReader rst = query.ExecuteReader();


        gridView1.DataSource = rst;
        gridView1.DataBind();
        return gridView1();

    }
}

【问题讨论】:

  • 您的 GetData 需要一个 Chart 参数。你曾经读过你的错误信息吗?如果您有错误消息,请仔细阅读。明白它。如果你没有得到它,请搜索它。所有错误消息和异常都为我们准备好了。
  • 对不起,我没看到。

标签: c# sql asp.net gridview


【解决方案1】:

您在没有任何参数的情况下调用GetData() 方法,然后在方法定义中使用GetData(Chart chart)。 另外,您在方法定义中返回字符串!!

方法调用:GetData()
方法定义:public string GetData(Chart chart)

方法调用和定义应该匹配

现在你应该这样做:

protected void Page_Load(object sender, EventArgs e)
{
    GetData();
}


public void GetData()
{
    Chart chart = new Chart();
    string connStr = ConfigurationManager.ConnectionStrings["CRM_SQL"].ConnectionString;
    SqlConnection conn = new SqlConnection(connStr);
    conn.Open();
    SqlCommand query = new SqlCommand(chart.Sql, conn);
    SqlDataReader rst = query.ExecuteReader();


    gridView1.DataSource = rst;
    gridView1.DataBind();


}

注意:我假设您在 Chart 类中设置 sql 查询

【讨论】:

  • 所以我现在在“SqlDataReader rst = query.ExecuteReader();”行中遇到错误因为executereader不起作用
  • 因为,它接受sql查询,你在哪里给的!!在图表类或其他地方
  • sql查询应该来自数据库类chart(chart.Sql)
  • @fusionchart_help 然后向我们展示您在chart.Sql中的 SQl 代码
【解决方案2】:

如果您使用存储过程,则需要指定命令类型。

SqlCommand query = new SqlCommand(chart.Sql, conn);
query.CommandType = CommandType.StoredProcedure;
SqlDataReader rst = query.ExecuteReader();

您的错误清晰可见。

protected void Page_Load(object sender, EventArgs e)
    {
        GetData();
    }

GetData 的签名不同。

 public string GetData(Chart chart)

【讨论】:

  • 还是同样的错误,难道gridview1不是正确的返回?
【解决方案3】:

我认为您需要将方法返回类型更改为 GridView 类,因为您正在返回 gridview1 对象 rite.. 并在调用该方法时检查您使用的方法签名是否正确..

【讨论】:

    【解决方案4】:

    如果不使用,我认为不需要返回字符串。还有returngridView1();不返回字符串。它将返回GridView。 您可以返回 Gridview,即将函数定义更改为

    public Gridview GetData()
    

    或者你可以这样做; 以下代码应该可以完成这项工作。

    public void GetData()
    {
    
        string connStr = ConfigurationManager.ConnectionStrings["CRM_SQL"].ConnectionString;
        SqlConnection conn = new SqlConnection(connStr);
        conn.Open();
        SqlCommand query = new SqlCommand(chart.Sql, conn);
        SqlDataReader rst = query.ExecuteReader();
    
    
        gridView1.DataSource = rst;
        gridView1.DataBind();
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-25
      相关资源
      最近更新 更多