gridview数据导出到excel
1. 怎么把datagridview写入数据库
private void Addyqt_ToolStripMenuItem_Click(object sender, EventArgs e)//右键添加菜单 { yqtqkdydv.Rows.Add("", "", "", “”, "", "")
;//datagridview的列数个"" int hh = yqtqkdydv.Rows.Count; yqtqkdydv.CurrentCell = yqtqkdydv.Rows[hh - 1].Cells[1]; } //在新增的行写入自己的数据,按下确定键后连接数据库,先入库然后再利用datagridview动态绑定方式显示
2. 在datagridview中添加数据,更新到数据库
向绑定的数据里面添加就可以了,比如:你绑定的是一个DataTable对象,就往DataTable对象添加行;如果你绑定的是一个List对象,就往List对象添加项;即:改变数据即可改变datagridview
3. datagridview手动添加数据
首先你要保证你的datagridview的AllowUserToAddRows属性为true,这样你的最后一行始终是添加行,添加完数据后在你的插入按钮事件里获取最后一行的数据, DataGridViewRowrow=dataGridView1.Rows[dataGridView1.Rows.Count-2]; foreach(DataGridViewCelliteminrow.Cells) { item就是每个单元格的值,你在这里可以拼接sql语句 } 之后执行就可以了
4. datagridview读取数据
dataGridView1.SelectedRows,这个是或得背选中的行
如果你想去出背选中的话,那么可以遍历
foreach (DataGridViewRow dgvr in dataGridView1.SelectedRows)
{
//dgvr 就是比背选中的行,遍历,我想你懂的dataGridView1.SelectedRows是一个集合,取出每一行当然遍历
//获取或设置
string msg = dgvr.Cells[0].Value == null ? "" : dgvr.Cells[0].Value.ToString();
//如果保证烈不为空
string msg2 = dgvr.Cells[2].Value.ToString();
dgvr.Cells[2].Value=“更改的”;
}
dataGridView1.SelectedColumns 是背选中的列,当然取出其中一烈是一样的
如果你要取出所有行的话。那么
foreach (DataGridViewRow dgvr in dataGridView1.Rows)
{
//dgvr 就是比被选中的行,遍历,
}
取出列的方式一样
当然还有最常用的,获取所有单元格的值
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
for (int j = 0; j < dataGridView1.Columns.Count; j++)
{
if (dataGridView1.Rows[i].Cells[j].Value != null)
{
string msg3 = dataGridView1.Rows[i].Cells[j].Value.ToString();//取出对应的单元格的值
MessageBox.Show(msg3);
}
}
}
只得注意的是,dategridview默认是有一行空值的,当你
dataGridView1.Rows[i].Cells[j].Value,这个单元格为空的时候,那么就是null,如果你强制转换为字符串将会异常,所以推介
msg3 = dataGridView1.Rows[i].Cells[j].Value==null?"空":dataGridView1.Rows[i].Cells[j].Value.ToString()
5. datagridview控件连接数据库
新增3行3列:(你可以通过操作DataGridView的数据去新增,当然还有别的方式)首先你应该先增加列。方法是要逐一创建3个列对象:DataColumn dc=new DataColumn (?),参数你自己指定咯,然后逐一添加到DataGridView上:((DataTable)DataGridView.DataSource).columns.Add(dc).然后增加行:DataRow dr=((DataTable)DataGridView.DataSource).NewRow()
;之后你需要对新增加的行添加数据:dr[列名]=“”
;最后把新增的行加上去:((DataTable)DataGridView.DataSource).Rows.Add(dr); 至于再单击就无效单击后无效,你可以在第一次单击执行的最后让按钮失效:Button.Enable=False;.上面是抛砖引玉,希望能给你一个方向。多思考,多实验,加油!!
6. datagridview保存数据
数据库用视图把要显示的数据做成视图datagridview显示视图修改、删除、保存修改功能,直接更新到视图就行了
7. datagridview添加一行数据
默认是可以添加行并编辑单元格的
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Me.ResizeRedraw = True Dim ff As New DataGridView ff.ReadOnly = False‘在这里设置是否可编辑单元格 ff.Parent = Me
ff.AllowUserToAddRows = True'这里设置是否显示添加新行
ff.Columns.Add("aa", "啊啊") End Sub
8. datagridview绑定数据库
Winfrom中的DataGridView其实就是一个数组的视图。
你的这个要求有两种常见的方式去解决,
DataGridView.Name = dg; 数据库查询的结果为DataTable dt;
1,直接视图绑定:
把DataGridView的AutoGenerationColumn 设置为true(自动增加列),然后绑定
dg.DataSource = dt;
绑定之后 DataGridView就会根据dt的列来自动显示了。
但是如果想更改列头的名称,就需要在查询的时候做好, 比如
select id as '序号',name as '姓名' from xxxx.....
绑定后,列头就是序号、姓名、
2.列绑定,
很麻烦,一般用于特殊的组合表查询。
比如数据库查询出的dt只有一列, 列头是Name。 想绑定到DataGridView指定的列(如第2列), 那么需要指定DataGridView的第二列,指定数据类型(string看、int看)然后遍历dt,把dt的每一行都加入到这一列的Items里面去。
如
var col = dg.Columns[1] ; //第二列
col.Type = Typeof["string"];
foreach(var cell in dt.Rows) //遍历dt
{
col.Items.Add((string)cell[0]);//把数据库的字段一个个的加入到指定列里面,
}