使用 DataGridView 向数据库添加记录的问题。

coolchangecool 2009-03-24 11:16:24
我想我的窗体中的DataGridView能实现如同你直接使用企业管理器或是Management Studio操作表的效果。

具体就是,比如我在DataGridView中的新行填写一个值,然后鼠标随便点击一下其它任意行,刚才写的新行就能提交至数据库。

我找了半天,就是没找到该在DataGridView的哪个事件中写代码。并且我想问,怎样获取我刚才输入的那个新值。

我当前DataGridView绑定的表非常简单,就一个字段PersonName.

具体代码我不需要,只想知道具体的思路(即到底使用哪个事件),以及如何获取我输入的那个值。

万分感谢!!!
...全文
61 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
uncleson88 2009-03-25
  • 打赏
  • 举报
回复
datagridview 好象有 RowInserted 之类的事件吧
coolchangecool 2009-03-24
  • 打赏
  • 举报
回复
另外顺便问问,我还想实现这样一个效果:

如果用户在新行中输入的PersonName为空字符串的话,则撤销该行,DataGridView最下面仍然只有一个待输入新行。

我觉个例子,说清楚些:
比如我输入一个名字,然后Backspace把它清掉,然后又点中新行开始编辑,如此重复几次,则会是如下效果:

张三
李四
[](空字符串)
[](空字符串)
[](空字符串)
*待输入新行

上面这个效果肯定是不行的,我想要的效果如下:

操作还是同上,但结果是:

张三
李四
*待输入新行
zhoulehua 2009-03-24
  • 打赏
  • 举报
回复
在实际应用中,我们一般设置有Entity,也就是用于保存一条记录的对应于数据库字段的类。
比如,在数据库中有一个表为User,它有字段UserId,UserName,
那么,我们可以增加一个类
public class UserEntiry
{
private decimal userId;
private string userName;

public decimal UserId
{
get { return userId; }
set { userId = value; }
}

public string UserName
{
get { return userName; }
set { userName = value; }
}
}

在DataGridView中,我们就可以将选中的行保存到一个IList中间去

IList<UserEntiry> userEntiryListI = dataGridView1.itemSource as IList<UserEntiry>;
转换为List就是
List<UserEntiry> userEntiryList = new List<UserEntiry>(userEntiryListI);
这样就保存了值了。

111,126

社区成员

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

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

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