-2

私のC#コードでは、ストアドプロシージャを使用してデータベースからデータを取得しており、テーブル(つまり.NetのGUIテーブル)を動的に作成し、そのテーブルに行と列を動的に追加しています。4 つのテーブルと 4 つのそれぞれのストアド プロシージャがあります。テーブルごとに 1 つのメソッドを記述する代わりに、4 つのメソッド (4 つのボタン クリック メソッド) から呼び出される単一のメソッドを記述したいと思います。これは、ストアド プロシージャ名とテーブル名のみが変更され、他のすべては同じままであるためです。以下のコードを使用しようとしています。

    public String StoredProcName; //Values will be "GetFirstYearCSESubjects","GetSecondYearCSESubjects","GetThirdYearCSESubjects","GetFourthYearCSESubjects"
    public String TableName; //Values will be "tblCSE1","tblCSE2","tblCSE3","tblCSE4"
    protected void tabCSE1_Click(object sender, EventArgs e)
    {
        CSEView.ActiveViewIndex = 0;      
        StoredProcName = "GetFirstYearCSESubjects";
        TableName = "tblCSE1";
        phCSE1.Controls.Clear();
        Table tblCSE1 = new Table();
        phCSE1.Controls.Add(tblCSE1);
        addCurriculumData(StoredProcName, TableName);
        ViewState["dynamictable"] = true;
    }

    public void addCurriculumData(String StoredProcName,String TableName)
    {
        String strCon = ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;
        SqlConnection sqlCon = new SqlConnection(strCon);
        SqlCommand cmd = new SqlCommand(StoredProcName, sqlCon);
        cmd.CommandType = CommandType.StoredProcedure;
        sqlCon.Open();
        SqlDataReader rdr = cmd.ExecuteReader();
        if (rdr.HasRows)
        {
            while (rdr.Read())
            {
                TableRow tr = new TableRow();
                for (int j = 0; j < 1; j++)
                {
                    TableCell tc = new TableCell();
                    Label lbl = new Label();
                    lbl.Text = rdr["Subject"].ToString();
                    tc.Controls.Add(lbl);
                    tr.Cells.Add(tc);
                }
                TableName.Rows.Add(tr);***//How should I write this statement???***
            }
        }
        else
            lblMessage.Text = "No Data found";
    }

ステートメントをどのように書けばよいかわかりませんTableName.Rows.Add(tr)。TableName は文字列であるため、行を持つことができないため、エラーがスローされます。したがって、TableName の代わりに TableName の値に言及する必要があります。どうすればいいですか?ポインターの概念を使用できますか? ポインターについてはよくわかりません。または、それを行う別の方法はありますか?

前もって感謝します

4

1 に答える 1

0

テーブル (文字列ではない) をメソッドに渡し、テーブルと対話します

public void addCurriculumData(String StoredProcName,Table table)
于 2013-03-27T18:19:03.840 に答える