[诚求答案][偶是菜鸟]C#如何保存DataGridView里多行数据?

山茶树和葡萄树 2010-10-08 08:52:12
如题:
C#如何保存DataGridView里多行数据?两种情况:一种是全部是新添加数据执行添加操作,一种是数据库原有信息执行修改操作。
...全文
1317 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
机器人 2010-10-09
  • 打赏
  • 举报
回复

public partial class Form1 : Form
{
private OleDbConnection connection = null;
private OleDbCommand selectCommand = null;
private OleDbDataAdapter dataAdapter = null;
private string connectionString =
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\..\DB\Customers.mdb;Persist Security Info=True";

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
connection = new OleDbConnection(connectionString);
selectCommand = connection.CreateCommand();
selectCommand.CommandText = "SELECT CustomerID, CompanyName, ContactName, Address, Phone FROM Customers";
dataAdapter = new OleDbDataAdapter();
dataAdapter.SelectCommand = selectCommand;
DataTable data = new DataTable();
dataAdapter.Fill(data);
this.dataGridView1.DataSource = data;

OleDbCommandBuilder builder = new OleDbCommandBuilder(dataAdapter);
dataAdapter.UpdateCommand = builder.GetUpdateCommand();
dataAdapter.InsertCommand = builder.GetInsertCommand();
dataAdapter.DeleteCommand = builder.GetDeleteCommand();
}

private void button1_Click(object sender, EventArgs e)
{
DataTable data = (DataTable)this.dataGridView1.DataSource;
DataTable changedData = data.GetChanges();

if (changedData != null)
{
dataAdapter.Update(changedData);
data.AcceptChanges();
}
}
}
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 fangxinggood 的回复:]

对了,再配合DataAdapter,CommandBuilder 新增,更新都不用直接写SQL了。很方便。
[/Quote]很想知道!可否教我?
八零末愤青 2010-10-08
  • 打赏
  • 举报
回复
把数据放到 datatable 或 dataset 中,在进行,数据库的表结果的复制,也即使复制一下你要保存到表的 数据结构,现在好多框架都支撑的
机器人 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xianghongai 的回复:]
引用 4 楼 fangxinggood 的回复:

数据源绑定原有的DataTable,可以通过DataTable.GetChanges()获得新增或者修改过的数据。
可是针对第一种情况了。没有原有的DataTable、
[/Quote]

没关系啊,一开始Select * from table1的DataTable虽然是空的(Rows.Count=0),
绑定DataGridView.DataSource之后,新增也能取得到。
机器人 2010-10-08
  • 打赏
  • 举报
回复
对了,再配合DataAdapter,CommandBuilder 新增,更新都不用直接写SQL了。很方便。
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 fangxinggood 的回复:]

数据源绑定原有的DataTable,可以通过DataTable.GetChanges()获得新增或者修改过的数据。
[/Quote]可是针对第一种情况了。没有原有的DataTable、
机器人 2010-10-08
  • 打赏
  • 举报
回复
数据源绑定原有的DataTable,可以通过DataTable.GetChanges()获得新增或者修改过的数据。
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 wuyq11 的回复:]

foreach(GridViewRow gr in GridView1.Rows){}
遍历findcontrol查询保存数据
[/Quote]可不可以不用遍历?
wuyq11 2010-10-08
  • 打赏
  • 举报
回复
foreach(GridViewRow gr in GridView1.Rows){}
遍历findcontrol查询保存数据
yingyusiji24 2010-10-08
  • 打赏
  • 举报
回复
回复回复 加积分~~回复回复 加积分~~回复回复 加积分~~回复回复 加积分~~回复回复 加积分~~回复回复 加积分~~回复回复 加积分~~回复回复 加积分~~

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧