datagridview作为数据录入界面

lovetsfuer 2010-06-26 01:34:40
做一winform系统,明细数据的输入是个难做的问题,对于明细多条数据录入的,我用的是datagridview,在datagridview行里输入数据,点击保存数据保存把数据保存到数据库表中,数据保存这块一直没有处理好,保存数据会经常出错,做过类似问题的请给些建议或是例子,谢谢
...全文
371 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
没花鹿 2010-06-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lovetsfuer 的回复:]
如果有一行数据数据时提示为将对象引用到实例化对象,两行数据没有错误
[/Quote]保存到数据库的代码有问题了吧,从datagridveiw里取数应该没问题,麻烦的是对于所取出的同一行的数据是否匹配等的判断。
lovetsfuer 2010-06-28
  • 打赏
  • 举报
回复
楼上的相信点,谢谢
jycrystal2002 2010-06-28
  • 打赏
  • 举报
回复
我做过类似的是绑定DataTable,然后保存的时候检测DataTable的RowState 然后根据Add Modified Deleted 等等状态来提交到数据库
lovetsfuer 2010-06-28
  • 打赏
  • 举报
回复
周一了有经验的在给提示一下,谢谢
Yefengkuangxiazai 2010-06-26
  • 打赏
  • 举报
回复
我的代码看过了么???原理是一样的
lovetsfuer 2010-06-26
  • 打赏
  • 举报
回复
是sql数据库
Yefengkuangxiazai 2010-06-26
  • 打赏
  • 举报
回复
我把我做过的列子给你看下如果有用就拿去参考下吧呵呵
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
Bind();

}
private void Bind()
{
SqlConnection con = new SqlConnection("server=.;database=Students;uid=sa;pwd=1");
con.Open();
SqlDataAdapter da = new SqlDataAdapter("select * from StuInfo", con);
DataSet ds = new DataSet();
da.Fill(ds, "stuinfo");
con.Close();
GridView1.DataSource = ds.Tables["stuinfo"].DefaultView;

//定义Gridview的记录的键字段
string[] keys = new string[] { "Id" };
GridView1.DataKeyNames = keys;
GridView1.DataBind();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
Bind();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
SqlConnection con = new SqlConnection("server=.;database=Students;uid=sa;pwd=1");
con.Open();
int Id =Convert .ToInt32( ((TextBox)GridView1.Rows[e.RowIndex].Cells[0].Controls[0]).Text);
string Name=((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text;
string Sex=((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text;
string Love=((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text;
string strsql = "update StuInfo set Name='"+Name+"',Sex='"+Sex+"',Love='"+Love+"' where Id="+Id;
SqlCommand cmd = new SqlCommand(strsql, con);
cmd.ExecuteNonQuery();
con.Close();

GridView1.EditIndex = -1;
Bind();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
Bind();
}
}
总之先看看不明白的地方在提呵呵希望帮得到你原理都在这里了
lovetsfuer 2010-06-26
  • 打赏
  • 举报
回复
如果有一行数据数据时提示为将对象引用到实例化对象,两行数据没有错误
Yefengkuangxiazai 2010-06-26
  • 打赏
  • 举报
回复
你的意思是在datagridview里自由编辑数据然后提交到数据库么??? 如果是SQL数据我想我也许能帮到你的忙...
gongsunfeng 2010-06-26
  • 打赏
  • 举报
回复
插入之前遍历数据 判断如果是数据行就插入 可以考虑用dataset 实现
gongsunfeng 2010-06-26
  • 打赏
  • 举报
回复
为什么能出错呢。你用databingsource 了吗 ? 你在插入前先判断下是不是数据行然后在插入就好了 我做过 没有错误 他提示什么错误??

110,536

社区成员

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

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

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