DataGridView绑定数据源

时间:2021-04-07 19:34:45

DataGridView的数据源可以使List, DataSet,DataTable等。

(1)填充List数据,

首先要在DateGridView上右击,选择添加列,把需要显示在DateGridView上的列名添好后确定,再右击编辑列,在数据DatePropertyName上填写要显示的数据库中字段的名字(如果使用的是存储过程填写存储过程中的变量)(如果使用的SQL语句没有必要了)

Headertext是列的显示名称。

DatePropertyName与数据源相关联的列。

Name标识对象的名称。

Visible是否显示此列。

            List<RoomType> roomTypes = new List<RoomType>();

            using (SqlConnection conn = new SqlConnection(connString))

            {

                SqlCommand objCommand = new SqlCommand("usp_SelectRoomTypesAll", conn);

                objCommand.CommandType = CommandType.StoredProcedure;

                conn.Open();

                using (SqlDataReader objReader = objCommand.ExecuteReader(CommandBehavior.CloseConnection))

                {

                    while (objReader.Read())

                    {

                        RoomType roomType = new RoomType();

                        roomType.TypeId = Convert.ToInt32(objReader["TypeID"]);

                        roomType.TypeName = Convert.ToString(objReader["TypeName"]);

                        roomType.TypePrice = Convert.ToDecimal(objReader["TypePrice"]);

                        roomType.IsAddBed = Convert.ToString(objReader["IsAddBed"]);

                        roomType.AddBedPrice = Convert.ToDecimal(objReader["AddBedPrice"]);

                        if (objReader["Remark"] != null)

                            roomType.Remark = Convert.ToString(objReader["Remark"]);

                        roomTypes.Add(roomType);

                    }

                    objReader.Close();

                    objReader.Dispose();

                }

                conn.Close();

                conn.Dispose();

            }

            dataGridView1.DataSource = roomTypes;

(2)填充DateSet数据

 string sql = "select * from roomtype";

             DataSet objDataSet = new DataSet();

            using (SqlConnection conn =new SqlConnection(connString))

            {

                SqlDataAdapter objSqlDataAdapter = new SqlDataAdapter(sql, conn);

                objSqlDataAdapter.Fill(objDataSet, "Info");