【在DataGridView控件中显示数据】
首先使用DataAdapter查询数据,然后用Fill方法填充DataSet,最后设置控件的DataSource属性为DataSet的表格数据。
private void Form1_Load(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("server=.;database=db_test1;uid=sa;pwd=144159");
conn.Open();
SqlDataAdapter da = new SqlDataAdapter("select * from db_table5 ", conn);
DataSet ds = new DataSet();
da.Fill(ds,"t5");
dataGridView1.DataSource = ds.Tables["t5"];
}
【获取DataGridView控件中的当前单元格】
通过DataGridView控件的CurrentCell属性。
SqlConnection conn;
SqlDataAdapter sda;
DataSet ds = null;
private void Form1_Load(object sender, EventArgs e)
{
conn = new SqlConnection("server=.;database=db_test1;uid=sa;pwd=144159");
conn.Open();
sda = new SqlDataAdapter("select * from db_table5 ", conn);
ds = new DataSet();
sda.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}
private void button1_Click(object sender, EventArgs e)
{
//格式化字符串,RowIndex行坐标,ColumnIndex列坐标
string msg = string.Format("第{0}行,第{1}列", dataGridView1.CurrentCell.RowIndex+1, dataGridView1.CurrentCell.ColumnIndex+1);
label1.Text = "选中的单元格为:" + msg;
}
【直接在DataGridView控件中修改数据】
主要用DataTable的ImportRow方法和DataAdapter的Update方法。实现过程是用DataTable的ImportRow方法将更改后的数据复制到一个DataTable中,再用DataAdapter的Update方法,将数据更新到数据库中。
SqlConnection conn;
SqlDataAdapter adapter;
int intindex = 0;
private void button1_Click(object sender, EventArgs e)
{
conn = new SqlConnection("server=.;database=db_test1;uid=sa;pwd=144159");
SqlDataAdapter sda = new SqlDataAdapter("select * from db_table5",conn);
DataSet ds = new DataSet();
sda.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
//禁止显示行标题
dataGridView1.RowHeadersVisible = false;
//使用for循环设置控件的列宽
for (int i = 0; i < dataGridView1.ColumnCount;i++ )
{
dataGridView1.Columns[i].Width = 84;
}
button1.Enabled = false;
//设置控件为只读
dataGridView1.Columns[0].ReadOnly = true;
}
private DataTable dbconn(string strSql)
{
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
this.adapter = new SqlDataAdapter(strSql, conn);
DataTable dtSelect = new DataTable();
int rnt = this.adapter.Fill(dtSelect);
return dtSelect;
}
private void button2_Click(object sender, EventArgs e)
{
if (dbUpdate())
{
MessageBox.Show("修改成功!");
}
}
private Boolean dbUpdate()
{
string strSql = "select * from db_table5 ";
DataTable dtUpdate = new DataTable();
dtUpdate = this.dbconn(strSql);
DataTable dtShow = new DataTable();
dtShow = (DataTable)this.dataGridView1.DataSource;
dtUpdate.ImportRow(dtShow.Rows[intindex]);
SqlCommandBuilder CommandBuiler;
CommandBuiler = new SqlCommandBuilder(this.adapter);
this.adapter.Update(dtUpdate);
dtUpdate.AcceptChanges();
return true;
}
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
intindex = e.RowIndex;
}
【当选中DataGridView控件中的行时显示不同的颜色】
使用控件的SelectionMode、ReadOnly、SelectionBackColor属性。
SqlConnection conn;
private void Form1_Load(object sender, EventArgs e)
{
conn = new SqlConnection("server=.;database=db_test1;uid=sa;pwd=144159");
SqlDataAdapter sda = new SqlDataAdapter("select * from db_table5", conn);
DataSet ds = new DataSet();
sda.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
//设置SelectionMode属性,使控件能够整行选中
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
//设置控件为只读
dataGridView1.ReadOnly = true;
//设置背景色为黄绿色
dataGridView1.DefaultCellStyle.SelectionBackColor = Color.YellowGreen;
}
【禁止在DataGridView控件中添加和删除行】
设置控件的公共属性AllowUserToAddRows、AllowUserToDeleteRows、ReadOnly。
dataGridView1.AllowUserToAddRows = false;//禁止添加行
dataGridView1.AllowUserToDeleteRows = false;//禁止删除行
dataGridView1.ReadOnly = true;//只读
【使用Columns和Rows属性添加数据】
private void Form1_Load(object sender, EventArgs e)
{
// 指定DataGridView控件显示的列数
dataGridView1.ColumnCount = 4;
dataGridView1.ColumnHeadersVisible = true;
// 设置DataGridView控件标题列的样式,创建对象
DataGridViewCellStyle columnHeaderStyle = new DataGridViewCellStyle();
//设置背景色
columnHeaderStyle.BackColor = Color.Beige;
//设置字体大小、样式
columnHeaderStyle.Font = new Font("Verdana", 10, FontStyle.Bold);
dataGridView1.ColumnHeadersDefaultCellStyle = columnHeaderStyle;
//设置DataGridView控件的标题列名
dataGridView1.Columns[0].Name = "编号";
dataGridView1.Columns[1].Name = "姓名";
dataGridView1.Columns[2].Name = "年龄";
dataGridView1.Columns[3].Name = "性别";
// 建立6行数据
string[] row1 = new string[] { "0001", "小吕", "28", "男" };
string[] row2 = new string[] { "0002", "小张", "27", "男" };
string[] row3 = new string[] { "0003", "小郭", "24", "女" };
string[] row4 = new string[] { "0004", "小贯", "21", "女" };
string[] row5 = new string[] { "0005", "小陈", "20", "女" };
string[] row6 = new string[] { "0006", "小梁", "23", "男" };
object[] rows = new object[] { row1, row2, row3, row4, row5, row6 };
foreach (string[] rowArray in rows)//遍历数组
{
dataGridView1.Rows.Add(rowArray);//添加数据
}