Не удается отобразить содержимое DataTable в Datagridview в C # - PullRequest
0 голосов
/ 21 января 2010

используя Систему; using System.Collections.Generic; using System.ComponentModel; используя System.Data; использование System.Drawing; использование System.Linq; используя System.Text; используя System.Windows.Forms;

пространство имен WindowsFormsApplication1 { открытый частичный класс Form1: Form { общедоступный Form1 () { InitializeComponent (); }

    public class Example
    {
        private void CreateTable()
        {

            //create datatable instance
            DataTable myTable = new DataTable();

            //create columns
            DataColumn col1 = new DataColumn("A");
            DataColumn col2 = new DataColumn("B");
            DataColumn col3 = new DataColumn("C");

            //define datacolumn data types
            col1.DataType = System.Type.GetType("System.Int");
            col2.DataType = System.Type.GetType("System.String");
            col3.DataType = System.Type.GetType("System.String");

            //add columns to table
            myTable.Columns.Add(col1);
            myTable.Columns.Add(col2);
            myTable.Columns.Add(col3);

            //create row in table
            DataRow row = myTable.NewRow();

            //populate columns with data
            row[col1] = "1001";
            row[col2] = "ABC";
            row[col3] = "HIJ";

            //add rows to table
            myTable.Rows.Add(row);


        }


    }

    private void Form1_Load(object sender, EventArgs e)
    {
        DataTable table = new DataTable();
        dataGridView1.DataSource = table;
    }


}

}

1 Ответ

1 голос
/ 21 января 2010

Вы не вызывали метод CreateDataTable() или метод dataGridView1.DataBind (). Я изменил ваш пример, чтобы он возвращал тип DataTable из метода CreateTable.

    private DataTable CreateTable()
    {

        //create datatable instance
        DataTable myTable = new DataTable();

        //create columns
        DataColumn col1 = new DataColumn("A");
        DataColumn col2 = new DataColumn("B");
        DataColumn col3 = new DataColumn("C");

        //define datacolumn data types
        col1.DataType = System.Type.GetType("System.Int");
        col2.DataType = System.Type.GetType("System.String");
        col3.DataType = System.Type.GetType("System.String");

        //add columns to table
        myTable.Columns.Add(col1);
        myTable.Columns.Add(col2);
        myTable.Columns.Add(col3);

        //create row in table
        DataRow row = myTable.NewRow();

        //populate columns with data
        row[col1] = "1001";
        row[col2] = "ABC";
        row[col3] = "HIJ";

        //add rows to table
        myTable.Rows.Add(row);

        return myTable;
    }

}

private void Form1_Load(object sender, EventArgs e)
{
    dataGridView1.DataSource = CreateTable();
    dataGridView1.DataBind();
}
...