如何将dataGridView中的数据绑定到DataSet中

来源:百度知道 编辑:UC知道 时间:2024/06/08 16:11:47
我的dataGridView中的数据是我手动绑定的:
for (int i = 0; i < 2; i++)
{
dgv1.Rows.Add();
dgv1.Rows[i].Cells["testID"].Value = "001";
dgv1.Rows[i].Cells["testName"].Value = "太阳";
dgv1.Rows[i].Cells["testRemark"].Value = "胜利";
}
我现在想把这里面的数据绑定到DataSet中:
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt = (DataTable)dgv1.DataSource;
ds.Tables.Add(dt.Copy());
但是不知道为什么,总是说 dgv1.DataSource 为null
不知道还有没有其他的方法
请高手指教下 3Q
一楼的朋友:
我不用数据库的..
我只是想把手动添加到dgv1里的数据绑定到dataset里..我后面是想利用dataset将这些数据写到xml里..
你要是知道的话..能否给个例子..小弟在此先谢谢了.

不好意思
也许是我没说清楚
我是在winForm中操作的
你给的答案是在webForm中操作的
能再给个例子吗..?winForm中的
要是可以 我再追加50分..3Q

dgv1.DataSource=null是因为你并没有给DataSource赋值啊。通常的做法是:
1.先得到你从数据库里提取数据的数据集ds
2.然后给dataGridView的DataSource赋值。dgv1.DataSource=ds.Tables[0];
3.绑定dataGridView.DataBind();
因为你没有进行第二部,所以你反向取值是得不到DataSet的。
不晓得你为什么要把数据直接循环加到dataGridView里。建议可以用循环先建立一个DataTable,然后绑定到dataGridView上。
这样在以后想获得DataSource的数据源就可以直接获得了。
------------------------------------------------------------------
如果你不能改变手动绑定的那段代码,就再次循环dataGridView建立一个DataTable吧。
-------------------------------------------------------------------
那就直接循环dgv1就可以了啊。
DataTable dt=new DataTable();
//设置列表头
foreach (TableCell headerCell in GridView1.HeaderRow.Cells)
{
dt.Columns.Add(headerCell.Text);
}
foreach (GridViewRow item in GridView1.Rows)
{
//因为已经加了表头,所以这里只添加绑定的项
if (item.RowType == DataControlRowType.DataRow)
{
DataRow dr = dt.NewRow();
for (int i = 0; i < dt.Columns.Count;i++ )
{
dr[0] = item.Cell