C# winform DataGridView 綁定數據的的幾種方法


1.用DataSet和DataTable為DataGridView提供數據源
String strConn = "Data Source=.;Initial Catalog=His;User ID=sa;Password=*****";
SqlConnection conn = new SqlConnection(strConn); String sql= "select * from EMPLOYEE "; conn.Open(); 
SqlCommand cmd = new SqlCommand(sqlId, conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet(); da.Fill(ds, "EMPLOYEE"); dataGridView1.DataSource = ds;
this.dataGridView1.AutoGenerateColumns = false;//是否自動生成列
dataGridView1.DataMember = "EMPLOYEE";
conn.Close();

2.創建DataGridViewRow 對象Add添加行

String sql_conn= "Data Source=.;Initial Catalog=His;User ID=sa;Password=*****";
System.Data.DataTable table =return_table(sql_conn);
foreach (System.Data.DataRow date in table.Rows)
{
DataGridViewRow newRow = new DataGridViewRow();
newRow.CreateCells(this.dataGridView1);
newRow.Cells[0].Value = date[0].ToString();
newRow.Cells[1].Value = date[1].ToString();
newRow.Cells[2].Value = date[2].ToString();
newRow.Cells[3].Value = date[3].ToString();
newRow.Cells[4].Value = date[4].ToString();
dataGridView1.Rows.Add(newRow);
 

}

 

public System.Data.DataTable return_table(string sql_conn)
{
      SqlConnection conn = new SqlConnection(sql_conn);
      SqlDataReader reader = null;
      conn.Open();
      SqlCommand command = new SqlCommand("select 
      RegID,Name,Area,RoomNO,BedNO from EMPLOYEE", conn);
      reader = command.ExecuteReader();
      return ConvertToDataTable(reader);
}

 

 

public DataTable ConvertToDataTable(SqlDataReader dataReader)//SqlDataReader轉換為DataTable
        {
            DataTable dt = new DataTable();
            DataTable schemaTable = dataReader.GetSchemaTable();
            try
            {
                //動態構建表,添加列
                foreach (DataRow dr in schemaTable.Rows)
                {
                    DataColumn dc = new DataColumn();
                    //設置列的數據類型
                    dc.DataType = dr[0].GetType();
                    //設置列的名稱
                    dc.ColumnName = dr[0].ToString();
                    //將該列添加進構造的表中
                    dt.Columns.Add(dc);
                }
                //讀取數據添加進表中
                while (dataReader.Read())
                {
                    DataRow row = dt.NewRow();
                    //填充一行數據
                    for (int i = 0; i < schemaTable.Rows.Count; i++)
                    {
                        row[i] = dataReader[i].ToString();

                    }
                    dt.Rows.Add(row);
                    row = null;
                }
                dataReader.Close();
                schemaTable = null;
                return dt;
            }
            catch (Exception ex)
            {

                //拋出異常
                throw new Exception(ex.Message);
            }

        }

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM