private void button1_Click(object sender, EventArgs e) //将数据库里的数据直接显示在datagridview1里面
{
SqlConnection conn = new SqlConnection("server=.;database=Cml;user=sa;pwd=123");
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "select * from " + textBox1.Text;
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
//造一个Datatable 是为了给datagridview一个数据源, 数据源有两个一个是泛型集合List<>,另一个则是Datatable
DataTable dt = new DataTable();
if(dr.HasRows)
{
//下面开始往DataTable临时表里存数据(这里是列)
for (int i = 0; i < dr.FieldCount; i++)
{
dt.Columns.Add(dr.GetName(i)); //获取到每一列的名字然后存在columns里面
}
////下面开始添加行
dt.Rows.Clear();
while (dr.Read()) //while循环循环的是每一行的数据,只要数据库里有数据,就会一行一行的读出来,每读一行就执行一次while
{
DataRow dtrow = dt.NewRow();//造一个新行
for (int i = 0; i < dr.FieldCount; i++)//for循环循环的是确定了某一行后每一列的数据
{
dtrow[i] = dr[i]; //i是索引
}
dt.Rows.Add(dtrow); //将读出来的每一行都存到dt里面去
}
}
dataGridView1.DataSource = dt;
cmd.Dispose();
conn.Close();
}