2015-05-29 61 views
0

我有一個GridView我在ASP.NET中。現在我想讓它充滿這種方法。但它不起作用。 return()不起作用,Page_load中的GetData也加下劃線(編譯器錯誤CS1501)。從GridView中獲取數據(C#)

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(); 

    } 
} 
+6

您的'GetData'期望一個「Chart」參數。你有沒有讀過你的錯誤信息?如果您有錯誤信息,請仔細閱讀。明白它。如果你沒有得到它,搜索它。所有的錯誤信息和例外都在我們面前。 –

+0

對不起,我沒有看到。 – Mairaj

回答

0

如果您使用存儲過程,則需要指定commandtype。

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) 
+0

仍然是一樣的錯誤,但它可能是gridview1不是正確的回報? –

0

我不認爲有需要返回一個字符串,如果它不使用。另外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(); 

} 
2

要調用不帶任何參數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查詢

+0

所以我現在得到一行錯誤「SqlDataReader rst = query.ExecuteReader();」因爲執行讀取器不起作用 –

+1

顯示Chart類的代碼 –

+1

你得到什麼錯誤! –

0

我認爲你需要改變方法返回類型爲GridView類,因爲你正在返回gridview1對象儀式..並檢查你使用的方法簽名是否正確與否調用方法..