如何把datagridview修改的数据保存到数据库中

chenghaicys 2007-11-05 03:59:36
界面就一个datagridview和button,当点击button的时候,如何
把datagridview中的新数据追加进数据库的表中.
...全文
493 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangzhiyong168 2007-11-06
  • 打赏
  • 举报
回复
首先我同意3楼的做法
chenghaicys 2007-11-06
  • 打赏
  • 举报
回复
1楼的方法怎么做,谁帮下忙
zhouxian0518 2007-11-06
  • 打赏
  • 举报
回复
把dataGridView1更改的数据绑定到datatable中:
for (int i = 0; i < dataGridView1.Rows.Count-1; i++)
{
dt.Rows[i].ItemArray[0] = dataGridView1.Rows[i].Cells[0].Value;
}
在用SqlDataAdapter.Update(dt);更新到数据库中。。。
liujb526 2007-11-05
  • 打赏
  • 举报
回复
/// <summary>
///批处理
/// </summary>
/// <param name="ds"></param>
/// <returns></returns>
public bool BON_All1(DataSet ds)
{
Int32 val = 0;
try
{
val = OledbHelper.ExecuteNonQuery(OledbHelper.con, CommandType.Text, sql, ds);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
if (val > 0)
return true;
return false;

}
liujb526 2007-11-05
  • 打赏
  • 举报
回复
呵呵,这方法多了
看这个:
public static Int32 ExecuteNonQuery(OleDbConnection con, CommandType cmdType, string cmdText, DataSet ds, params OleDbParameter[] cmdParms)
{
OleDbCommand cmd = new OleDbCommand();
OleDbDataAdapter da = new OleDbDataAdapter();
OleDbParameter parm = new OleDbParameter();
OleDbCommandBuilder builder = null;
Int32 val;

PrepareCommand(cmd, con, null, cmdType, cmdText, ds, cmdParms);
da.SelectCommand = cmd;
builder = new OleDbCommandBuilder(da);
val = da.Update(ds);
return val;
}
liujb526 2007-11-05
  • 打赏
  • 举报
回复
public bool BON_All(DataSet ds)
{
Model.Attribute rr = new Model.Attribute();
ArrayList list = new ArrayList();
list.Add(sql);
list.Add(ame);
list.Add(del);
list.Add(add);

OleDbParameter[] getparm = OledbHelper.GetCacheParameters(sql);
OleDbParameter[] addparm = OledbHelper.GetCacheParameters(add);
if (addparm == null)
{
addparm = new OleDbParameter[]
{ new OleDbParameter(Parm_name,OleDbType.VarChar,50,"attributeValue")
};
OledbHelper.CacheParameters(add, addparm);
}
addparm[0].Value = rr.AttributeValue;

OleDbParameter[] delParm = OledbHelper.GetCacheParameters(del);
if (delParm == null)
{
delParm = new OleDbParameter[] { new OleDbParameter(Parm_cid, OleDbType.Integer, 4, "autoID") };
OledbHelper.CacheParameters(del, delParm);
}
delParm[0].Value = rr.AutoID;

OleDbParameter[] ameParm = OledbHelper.GetCacheParameters(ame);
if (ameParm == null)
{
ameParm = new OleDbParameter[] { new OleDbParameter(Parm_name, OleDbType.VarChar, 50, "attributeValue") ,
new OleDbParameter(Parm_cid,OleDbType.Integer,4,"autoID")};
OledbHelper.CacheParameters(ame, ameParm);
}
ameParm[0].Value = rr.AttributeValue;
ameParm[1].Value = rr.AutoID;

ArrayList ll = new ArrayList();
ll.Add(getparm);
ll.Add(ameParm);
ll.Add(delParm);
ll.Add(addparm);



Int32 val = 0;
try
{
val = OledbHelper.ExecuteNonQuery(OledbHelper.con, CommandType.Text, list, ds, ll);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
if (val > 0)
return true;
return false;

}
liujb526 2007-11-05
  • 打赏
  • 举报
回复
if (ds.HasChanges() == true)
{
for (Int32 i = 0; i < dgvAttribute.Rows.Count - 1; i++)
{
if (dgvAttribute.Rows[i].Cells[1].Value.ToString().Trim() == "")
{
MessageBox.Show("不能存在空值");
return;
}
}
bool b = db.BON_All1(ds);
if (b == true)
{
ds.Clear();
this.GetAttribute();
}
}
wuhq030710914 2007-11-05
  • 打赏
  • 举报
回复
DataGridView中做的数据改变会反映到它所绑定的DataTable里,最后使用SqlDataAdapter的Update方法,把修改反映到数据库中

110,533

社区成员

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

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

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