winform(数据导出、TreeView的使用)
DataGridView:显示数据表,通过此控件中可以实现连接数据库,实现数据的增删改查
一、后台数据绑定:
List<xxx> list = new List<xxx>();
dataGridView1.DataSource = list;
//设置不自动生成列,此属性在属性面板中没有
dataGridView1.AutoGenerateColumns = false;
//取消加载默认选中第一行
dataGridView1.ClearSelection();
二、前台:
小三角箭头,取消可编辑,添加,删除功能;
Columns集合属性中,添加列
HeaderText中设置显示的文本
DataPropertyName设置绑定的字段名或数据库列名
SelectionMode --设置选择方式,FullRowSelect只能选中行
MultiSelect --是否可以选中多行内容
三、取值:
取出选中的单元格的值:
dataGridView1.SelectedCells中放着全部选中的单元格
if(dataGridView1.SelectedCells.Count > 0)
{
MessageBox.Show(dataGridView1.SelectedCells[0].Value.ToString());
}
取出选中的行内容:
if(dataGridView1.SelectedRows.Count > 0)
{
MessageBox.Show(dataGridView1.SelectedRows[0].Cells[0].ToString());
}
获取用于填充行绑定的对象:
//行对象使用属性:DataBoundItem
student sss = dataGridView1.SelectedRows[0].DataBoundItem as student;
四、删除加确认
MessageBoxButtons btn = MessageBoxButtons.YesNoCancel;
if (MessageBox.Show("确定要删除么?", "删除数据", btn) == DialogResult.Yes)
{
}
五、多条件查询
如果用户什么都不输入,或者文本框是空,这时候是查询所有
//做两个恒成立的条件
string tj1 = " 1=1 ";
string tj2 = " 1=1 ";
//根据用户输入来改变条件
//如果用户输入了姓名
if (name != "")
{
tj1 = " Name like @name ";
}
//如果用户输入了民族
if (nation != "")
{
tj2 = " Nation = @nation ";
}
//拼接成完整条件
string ztj = " where "+tj1+" and "+tj2;
六、例子
通过控件DataGridView,连接数据库(表Student和表Sclass),实现对Student表的增删改查
代码区:
数据连接类:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
实体类:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
数据访问类:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
主窗体:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
修改添加窗体:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
效果显示区:
主窗体:
删除:
添加:
修改:
查询:
※数据区别显示
//遍历datagridview里面行的集合,取出每一个行
foreach (DataGridViewRow row in dataGridView1.Rows)
{
//将该行里面绑定的数据项取出
Info data = row.DataBoundItem as Info;
//判断是不是男女
if (data.Sex)
{
}
}