社区
C#
帖子详情
问了很久,没人答,有关DataTable与DataGrid的问题。
cenxaoi
2005-02-02 02:00:27
DataTable a 含col1列,col1列建了唯一约束。
把a绑定到DataGrid dg;在DataGird不同行填入相同的值,会出现
标题为:向原始数据存储区提交行时出错。
内容为:列"col1"被约束为是唯一的。值"abc"已存在。要更改该值吗?
的MessageBox。
我想把把该MessageBox拦截。修改它的内容,不然用户看不明白。
但是不知在哪里可以拦截,
...全文
329
24
打赏
收藏
问了很久,没人答,有关DataTable与DataGrid的问题。
DataTable a 含col1列,col1列建了唯一约束。 把a绑定到DataGrid dg;在DataGird不同行填入相同的值,会出现 标题为:向原始数据存储区提交行时出错。 内容为:列"col1"被约束为是唯一的。值"abc"已存在。要更改该值吗? 的MessageBox。 我想把把该MessageBox拦截。修改它的内容,不然用户看不明白。 但是不知在哪里可以拦截,
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cenxaoi
2005-03-02
打赏
举报
回复
说用try catch 的人大慨没用用Column的中的unique属性吧。
难道使用不能在DataTable或者DataGrid的某个事件中拦截吗,我的思路是这样的,但是找不到有这个功能的事件。
tanc2001
2005-02-23
打赏
举报
回复
还是try
{
}
catch
{
}
容易理解
web_gus
2005-02-23
打赏
举报
回复
up
readersm68
2005-02-17
打赏
举报
回复
修改数据库中系统存储过程中的出错提示,把提示的语句修改成用户可以理解的语句。
xzyan80
2005-02-17
打赏
举报
回复
up
曲滨_銘龘鶽
2005-02-15
打赏
举报
回复
其实 DataGrid 那个弹出窗口 也是 个捕获的异常 提示
只要你在 适当的地方引发异常就可以了
其实 数据绑定到文本框 时如果输入数据类型不对时 也是 DataTable内部引发了个异常
使 文本框 回滚 数据的这些东西和 Delphi 很像的
通过底层系统内置的数据对象 就可以控制 控件的行为,
要不用一种新控件就要重新学很多东西
多郁闷啊
不过还是差点 Delphi 在 数据对象 每个单元格数据 改变的时候都有事件
.net 就行 改变的时候有 事件
曲滨_銘龘鶽
2005-02-15
打赏
举报
回复
这个必须去掉 那个DataTable 主键
给你点代码。
DataTable dt =new DataTable("Test");
dt.Columns.Add("ID",typeof(int));
dt.Columns.Add("Name",typeof(Decimal),"(1+2)*6/(5*8)");
//dt.PrimaryKey = new DataColumn[]{dt.Columns["ID"]};
dt.Rows.Add(new object[]{1});
dataGrid1.DataSource=dt;
//映射 DataTable 行改变事件
dt.RowChanging+=new DataRowChangeEventHandler(dt_RowChanging);
private void dt_RowChanging(object sender, DataRowChangeEventArgs e)
{
if (e.Action == DataRowAction.Add || e.Action == DataRowAction.Change )
{
DataTable dt = e.Row.Table;
string filterExpression = "ID = " +e.Row["ID"];
if (dt!=null && dt.Select(filterExpression).Length > 0)
{
throw new Exception("本列不可以键入重复的数据!\r\n");
}
}
}
曲滨_銘龘鶽
2005-02-15
打赏
举报
回复
不好意识,很久以前写的东西现在都要忘记了。
上面的代码 不正确 忘记 DataRowAction.Add 和 DataRowAction.Change
是不同的了。
private void dt_RowChanging(object sender, DataRowChangeEventArgs e)
{
DataTable dt = e.Row.Table;
string filterExpression = "ID = " +e.Row["ID"];
int selRow = -1;
if (e.Action == DataRowAction.Add )
selRow=0;
else if(e.Action == DataRowAction.Change)
selRow=1;
if (selRow>-1 && dt.Select(filterExpression).Length > selRow)
{
throw new Exception("本列不可以键入重复的数据!\r\n");
}
}
marvelstack
2005-02-14
打赏
举报
回复
取消约束,在数据插入时进行判断,做出相应提示,
http://www.syncfusion.com/FAQ/WinForms/FAQ_c44c.asp
nga96
2005-02-13
打赏
举报
回复
(1)一般情况下,DATAGRID作为显示数据使用,不要作为编辑区
(2)你捕捉 currentcellchanged事件试试看
学习Java中
2005-02-03
打赏
举报
回复
up
噯卟釋手
2005-02-03
打赏
举报
回复
UP~~~~
zhongjy001
2005-02-02
打赏
举报
回复
认为判断,然后throw new Exception("错误!");
web_gus
2005-02-02
打赏
举报
回复
try{你的代码}
catch
{
MessageBox.show(友好信息);
}
manonroad
2005-02-02
打赏
举报
回复
在客户端验证用户如数数据,根据不同的情况给出相应的信息。用约束不是一个好主意。
fellowcheng
2005-02-02
打赏
举报
回复
不如在前端用代码来控制用户的输入
老汉
2005-02-02
打赏
举报
回复
接分快乐。
也不怕版主说你刷屏。
liulxmooo
2005-02-02
打赏
举报
回复
up
sonny72
2005-02-02
打赏
举报
回复
你的做法看似可以,实际把问题复杂化了.
JasonHeung
2005-02-02
打赏
举报
回复
在提交前逐一检查数据的合法性,这是通用的做法!
加载更多回复(4)
c#
datagrid
操作,解决
datagrid
View加载慢.docx
发现了
datagrid
view直接绑定DataSource加载数据比较慢的
问
题
,从网上找了很多资料,没有有效的解决方案,
asp.net知识库
与DotNet数据对象结合的自定义数据对象设计 (二) 数据集合与
DataTable
与DotNet数据对象结合的自定义数据对象设计 (一) 数据对象与DataRow ASP.NET中大结果集的分页[翻译] .net 2.0 访
问
Oracle --与Sql Server的...
Flutter基础
本课程主要介绍Flutter的核心知识。Flutter主要用于开发跨平台Android App和iOS App。主要包括Flutter的安装,Flutter布局,常用组件、Android和iOS风格的组件、手势、图像、网络、数据库等核心操作。
DataGrid
的简单使用
这个环节在很多年前已经攻过,不过很
久
没用所以忘了,现在做个简单记录; - 赋值 我一般不做绑定,习惯,或者绑定很好用,或者; 我自己写了个类,实现数据库与WPF的交互,所以直接用
DataTable
与
DataGrid
交互就好 me...
WPF 动态加载
DataGrid
在网上也找了很
久
这方面的资料,然后功夫不负有心人还是找到了,然后写一下自己在做的过程中的一些方法和心得。 先说明我没有用WPF的MVVM模式做。 首先需要先在页面上放一个空的
DataGrid
<
DataGrid
x:Name=...
C#
110,534
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章