如何验证 DataGridView 输入?

2024-03-18

我有一些严重的问题数据网格视图输入验证:

我正在使用实体框架开发一个项目,并且我已经绑定了数据网格视图元素到数据库。

如果用户将一些数据插入到不可为空的列中,然后清除数据以使该列留空,然后单击另一个数据网格视图单元格时,发生异常并且出现运行时错误。

或者,如果用户尝试将字符串插入整数列,他们会收到一条非常长的错误消息,这对用户来说根本不友好。

有什么简单的方法可以验证吗数据网格视图 cells?


我相信你正在寻找DataGridView.DataError事件。如果您想对数据进行自定义验证,则应该处理此事件。像这样的东西:

    private void Form1_Load(object sender, EventArgs e)
    {
        dataGridView1.DataSource = entities;
        dataGridView1.DataError += new DataGridViewDataErrorEventHandler(dataGridView1_DataError);
    }

    void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e)
    {
        // you can obtain current editing value like this:
        string value = null;
        var ctl = dataGridView1.EditingControl as DataGridViewTextBoxEditingControl;

        if (ctl != null)
            value = ctl.Text;

        // you can obtain the current commited value
        object current = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
        string message;
        switch (e.ColumnIndex)
        {
            case 0:
                // bound to integer field
                message = "the value should be a number";
                break;
            case 1:
                // bound to date time field
                message = "the value should be in date time format yyyy/MM/dd hh:mm:ss";
                break;
            // other columns
            default:
                message = "Invalid data";
                break;
        }

        MessageBox.Show(message);
    }

您可以检查输入数据的值并显示该值的相应错误消息。例如,如果值为 null 或为空且该字段不可为空,则可以显示一条消息,指示该值不能为空。

希望这可以帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何验证 DataGridView 输入? 的相关文章

  • 以编程方式读取 SQL Server 查询计划建议的 SQL 特定执行的索引?

    如果我在 SSMS 中运行此命令 set showplan xml on GO exec some procedure arg1 arg2 arg3 GO set showplan xml off GO 我获得查询执行中涉及的完整调用堆栈的
  • 告诉我 SQL Server 全文搜索器疯了,不是我疯了

    我有一些客户具有用户正在搜索的特定地址 123 通用方式 数据库中有 5 行匹配 ResidentialAddress1 123 GENERIC WAY 123 GENERIC WAY 123 GENERIC WAY 123 GENERIC
  • 查找进程的完整路径

    我已经编写了 C 控制台应用程序 当我启动应用程序时 不使用cmd 我可以看到它列在任务管理器的进程列表中 现在我需要编写另一个应用程序 在其中我需要查找以前的应用程序是否正在运行 我知道应用程序名称和路径 所以我已将管理对象搜索器查询写入
  • 当一组凭据下的计划任务启动的进程在另一组凭据下运行另一个程序时,Windows 是否有限制

    所以我有一个简单的例子 其中我有应用程序 A 它对用户 X 本地管理员 有一些硬编码的凭据 然后它使用硬编码的绝对路径启动带有这些凭据的应用程序 B A 和 B 以及 dotnet 控制台应用程序 但是它们不与控制台交互 只是将信息写入文件
  • 从客户端访问 DomainService 中的自定义对象

    我正在使用域服务从 Silverlight 客户端的数据库中获取数据 在DomainService1 cs中 我添加了以下内容 EnableClientAccess public class Product public int produ
  • 使用可变参数包类型扩展的 C++ 函数调用者包装器

    我绑定了一些 API 并且绑定了一些函数签名 如下所示 static bool WrapperFunction JSContext cx unsigned argc JS Value vp 我尝试将对象和函数包装在 SpiderMonkey
  • 对 std::vector 进行排序但忽略某个数字

    我有一个std vector
  • File.AppendText 尝试写入错误的位置

    我有一个 C 控制台应用程序 它作为 Windows 任务计划程序中的计划任务运行 此控制台应用程序写入日志文件 该日志文件在调试模式下运行时会创建并写入应用程序文件夹本身内的文件 但是 当它在任务计划程序中运行时 它会抛出一个错误 指出访
  • SQL服务器超时

    我的应用程序是在经典 asp 上开发的 但也使用 asp net 因为我正在将应用程序迁移到 Net 上 它使用 SQL Server 作为数据库并托管在 Windows Server 2003 上 现在的问题是应用程序在很长一段时间内继续
  • 类型约束

    我有以下类层次结构 class Header IEnumerable
  • 将 SQL Server 2008 DB 迁移到 Postgres [重复]

    这个问题在这里已经有答案了 我想将 SQL Server 2008 数据库迁移到 Postgres 有没有一种无痛的方法来做到这一点 是否有任何工具可以扫描架构和存储过程以标记兼容性问题 无痛http dbconvert com conve
  • Unity:通过拦截将两个接口注册为一个单例

    我有一个实现两个接口的类 我想对该类的方法应用拦截 我正在遵循中的建议Unity 将两个接口注册为一个单例 https stackoverflow com questions 1394650 unity register two inter
  • WebBrowser.Print() 等待完成。 。网

    我在 VB NET 中使用 WebBrowser 控件并调用 Print 方法 我正在使用 PDF 打印机进行打印 当调用 Print 时 它不会立即启动 它会等到完成整个子或块的运行代码 我需要确保我正在打印的文件也完整并继续处理该文件
  • C++ new * char 不为空

    我有一个问题 我在 ASIO 中开发服务器 数据包采用尖头字符 当我创建新字符时 例如char buffer new char 128 我必须手动将其清理为空 By for int i 0 i lt 128 i buffer i 0x00
  • OpenGL:仅获取模板缓冲区而没有深度缓冲区?

    我想获取一个模板缓冲区 但如果可能的话 不要承受附加深度缓冲区的开销 因为我不会使用它 我发现的大多数资源表明 虽然模板缓冲区是可选的 例如 排除它以利于获得更高的深度缓冲区精度 但我还没有看到任何请求并成功获取仅 8 位模板缓冲区的代码
  • 实体框架中的“it”是什么

    如果以前有人问过这个问题 请原谅我 但我的任何搜索中都没有出现 它 我有两个数据库表 Person 和 Employee 对每个类型的表进行建模 例如 Employee is a Person 在我的 edmx 设计器中 我定义了一个实体
  • 如何减少具有多个单元的 PdfPTable 的内存消耗

    我正在使用 ITextSharp 创建一个 PDF 它由单个 PdfTable 组成 不幸的是 对于特定的数据集 由于创建了大量 PdfPCell 我遇到了内存不足异常 我已经分析了内存使用情况 我有近百万个单元格的 1 2 在这种情况下有
  • 灵气序列解析问题

    我在使用 Spirit Qi 2 4 编写解析器时遇到一些问题 我有一系列键值对以以下格式解析
  • 如何使用 C++11 using 语法键入定义函数指针?

    我想写这个 typedef void FunctionPtr using using 我该怎么做呢 它具有类似的语法 只不过您从指针中删除了标识符 using FunctionPtr void 这是一个Example http ideone
  • 我可以将 MongoDB 与实体框架一起使用吗?

    实体框架有可能支持MongoDB数据库吗 有人写过实体框架MongoDB Provider吗 简短的回答 不 这肯定是可能的 但不合理 MongoDB 是文档数据库 不支持集合之间的任何物理关系 EF 非常适合 SQL MySQL 等关系数

随机推荐

  • Android 上 lib 的 Emma 代码覆盖率

    我目前对 Android 应用程序进行了一些单元测试 这些应用程序调用库 jar 文件 我想查看 jar 的代码覆盖率 但是当我运行 ant emma 并查看coverage html 时 它只报告应用程序项目的覆盖率 有没有办法指定我也想
  • 从 google plus 登录重定向到 iOS 应用程序后出现错误

    我在我的 iPhone 应用程序中使用 Google plus api 登录 以前我使用我的 Gmail 帐户在 google plus api 中创建了我的应用程序 那一次效果很好 但是 由于某些原因 我使用 gmail 在我的公司帐户中
  • 对服装照片进行分类有哪些好的功能? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想构建一个服装分类器 拍摄一件衣服的照片并将其分类为 牛仔裤 连衣裙 运动鞋 等 一些例子 这些图像来自零售商网站 因此通常是从相同
  • 将 XML 数据集数据表合并为一个数据表

    我需要使用 C 解析 XML 文档以将数据存入数据库 目前 我正在使用 SSIS 和此 C 代码将文档读入数据集 var xmlString File ReadAllText Variables filepath var stringRea
  • Android 本地化问题:切换区域设置时布局中的所有项目均无法正确更新

    问题是 当我在后台运行一个活动 切换区域设置 然后切换回应用程序时 所有内容都会更新 除了设置了 android id 属性的复选框和单选按钮 如果复选框和单选按钮没有 android id 属性 那么它们会更新正常 其他字段不存在此问题
  • Random.Next 始终返回相同的值[重复]

    这个问题在这里已经有答案了 这真的很奇怪 我不明白为什么会发生这种情况 在 foreach 循环中 我迭代 A 类集合 对于每个类 我调用Count 方法 其中r1 and r2数字是从范围 1 1 生成的 问题是Random Next为每
  • 如何在Linux上停止时间倒流?

    这是我编写的一个小测试 用于验证时间确实只在 Linux 中向前运行 include
  • 将变量从 Jupyter Notebook 传递到 Python 脚本

    我想在 Jupyter 笔记本中定义一个变量 然后将其传递给 python 脚本 例如 在笔记本中 a 1 2 3 4 run example py print foo 在 example py 中 b 5 8 9 10 foo a b 当
  • JavaFX:如何清除画布

    假设我在画布上画了一个矩形 我想清理它以绘制其他图形 多边形 弧 我该怎么做 我尝试过很多方法 但没有一个有效 我认为这可能有效 但我不确定 GraphicsContext gc myCanvas getGraphicsContext2D
  • Scala 解决了 Comparator.thenComparing 中的错误覆盖问题

    我正在尝试翻译以下 Java 代码 import java util Comparator public class ComparatorTestJava public static void test Comparator
  • Visual Studio 2015 Update 2 导致 IDE 挂起

    安装 Visual Studio 2015 Update 2 后 IDE 挂起并且不会在启动屏幕上启动 唯一的修复方法是运行 devenv setup 或者进行修复看起来像是未更新缓存的已知问题 但这是针对预发布更新的 我检查了我的日志 得
  • SwiftUI onAppear 中的异步数据获取

    我有课getDataFromDatabase有功能readData 这就是从 Firebase 读取数据 class getDataFromDatabase ObservableObject var arrayWithQuantity In
  • 删除条形图之间的空间ggplot2

    这是我的代码 ggplot df aes x timepoint y mean fill group geom bar position position dodge 3 colour black stat identity width 0
  • ValueTuple.Create 中的命名参数

    我正在研究 C 中的值元组 首先是一些演示数据 region Data public class Product public string Name get set public int CategoryID get set public
  • 从 Word 中的内容控件提取数据到 Excel

    我有一个 可填写表单 的 Word 文档 即其中包含内容控制对象 例如富文本和日期选择器内容控件 我希望将特定字段的数据提取到 Excel 中 例如 每个表单都有项目标题 开始日期和经理 我想要该表格的 1 行包含这三项数据 最终 每隔几个
  • 如何使用 python 解析 json 对象?

    我正在尝试解析 json 对象并遇到问题 import json record shirt red quanitity 100 blue quantity 10 pants black quantity 50 inventory json
  • 为什么 JavaScript 展开表示法在这里不起作用

    我正在学习 React 有一个我无法解决的简单问题 我创建了一个代码沙盒 https codesandbox io s react dropzone sha256 5ngg7 file src FileUpload js 在图像中 file
  • 在 ArrayController 模型的过滤子集上设置 itemController

    问题摘要 虽然我可以让集合的子级 在 ArrayController 上定义 为个体使用特定的对象控制器 但这不适用于已过滤的子级子集 简短的上下文 我有订阅 其中有项目 我想按类型过滤视图中的订阅 并让这些订阅中的项目按时间戳排序 这是订
  • 在 R 中按组引导结果向量

    Question 如何使用引导程序来获取一组数据的置信区间 根据协方差矩阵的特征值计算的统计数据 分别为 数据框中的每个组 因子水平 Problem 数据不太清楚 结构我需要包含这些适合的结果boot函数 或者一种在组上 映射 引导程序并以
  • 如何验证 DataGridView 输入?

    我有一些严重的问题数据网格视图输入验证 我正在使用实体框架开发一个项目 并且我已经绑定了数据网格视图元素到数据库 如果用户将一些数据插入到不可为空的列中 然后清除数据以使该列留空 然后单击另一个数据网格视图单元格时 发生异常并且出现运行时错