从GridView中的sql表中获取数据(c#)
本文关键字:数据 获取 GridView 中的 sql | 更新日期: 2023-09-27 17:51:04
我有一个在ASP.NET中制作的GridView
。现在我想让它用这个方法填充自己。但这行不通。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()
方法,然后在方法定义中使用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();
}
注:我假设你正在设置sql查询图表类
如果使用存储过程,则需要指定命令类型。
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)
我认为你需要改变方法返回类型为GridView类,因为你正在返回gridview1对象rite..并且在调用方法时检查您正在使用的方法签名是否正确。
我不认为有必要返回一个字符串,如果它不使用。return
gridView1();不返回字符串。它将返回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();
}