datagridview 不能添加重复的数据,主键不能为空

datagridview 不能添加重复的数据,主键不能为空,第1张

不添加重复数据:

先进数据库检索一下是否能找到与即将要添加的数据相同的记录,如果有则不进行添加 *** 作,并提示用户;

主键为空:

对主键TEXTBOX.TEXT值判断是否为空,为空则不添加

MySql避免重复插入记录几种 本文章给家提供三种mysql避免重复插入记录主要讲ignore,Replace,ON DUPLICATE KEY UPDATE三种需要朋友参考 案:使用ignore关键字 用主键primary或者唯索引unique区记录唯性,避免重复插入记录使用: 复制代码 代码: INSERT IGNORE INTO `table_name` (`email`, `phone`, `user_id`) VALUES ('test9@一陆三中国', '99999', '9999')重复记录忽略,执行返数字0 应用复制表,避免重复记录: 复制代码 代码: INSERT IGNORE INTO `table_一` (`name`) SELECT `name` FROM `table_二`案二:使用Replace 语格式: 复制代码 代码: REPLACE INTO `table_name`(`col_name`, ...) VALUES (...)REPLACE INTO `table_name` (`col_name`, ...) SELECT ...REPLACE INTO `table_name` SET `col_name`='value', ...算说明: REPLACE运行与INSERT相像,旧记录与新记录相同值则新记录插入前旧记录删除即: 尝试新行插入表 于主键或唯关键字现重复关键字错误造插入失败: 表删除含重复关键字值冲突行 再尝试新行插入表 旧记录与新记录相同值判断标准: 表PRIMARY KEY或UNIQUE索引否则使用REPLACE语句没意义该语句与INSERT相同没索引用于确定否新行复制其行 返值: REPLACE语句返数指示受影响行数目该数删除插入行数 受影响行数容易确定否REPLACE添加行或者否REPLACE替换其行:检查该数否一(添加)或更(替换) 示例: # eg:(phone字段唯索引) 复制代码 代码: REPLACE INTO `table_name` (`email`, `phone`, `user_id`) VALUES ('test5陆9', '99999', '一二三')另外, SQL Server 处理: 复制代码 代码: if not exists (select phone from t where phone= '一') insert into t(phone, update_time) values('一', getdate()) elseupdate t set update_time = getdate() where phone= '一' 更信息请看:中国dev.mysql中国/doc/refman/5.一/zh/sql-syntax.html#replace 案三:ON DUPLICATE KEY UPDATE ‍所写INSERT INTO…..面加 ON DUPLICATE KEY UPDATE实现您指定ON DUPLICATE KEY UPDATE并且插入行导致UNIQUE索引或PRIMARY KEY现重复值则执行旧行UPDATE 例列a定义UNIQUE并且包含值一则两语句具相同效: 复制代码 代码: INSERT INTO `table` (`a`, `b`, `c`) VALUES (一, 二, 三) ON DUPLICATE KEY UPDATE `c`=`c`+一UPDATE `table` SET `c`=`c`+一 WHERE `a`=一行作新记录插入则受影响行值一;原记录更新则受影响行值二 注释:列b唯列则INSERT与UPDATE语句相: 复制代码 代码: UPDATE `table` SET `c`=`c`+一 WHERE `a`=一 OR `b`=二 LIMIT 一a=一 OR b=二与行向匹配则行更新通您应该尽量避免带唯关键字表使用ON DUPLICATE KEY句 您UPDATE句使用VALUES(col_name)函数INSERT…UPDATE语句INSERT部引用列值换句说没发重复关键字冲突则UPDATE句VALUES(col_name)引用插入col_name值本函数特别适用于行插入VALUES()函数INSERT…UPDATE语句意义其候返NULL 复制代码 代码: INSERT INTO `table` (`a`, `b`, `c`) VALUES (一, 二, 三), (四, 5, 陆) ON DUPLICATE KEY UPDATE `c`=VALUES(`a`)+VALUES(`b`)本语句与两语句作用相同: 复制代码 代码: INSERT INTO `table` (`a`, `b`, `c`) VALUES (一, 二, 三) ON DUPLICATE KEY UPDATE `c`=三INSERT INTO `table` (`a`, `b`, `c`) VALUES (四, 5, 陆) ON DUPLICATE KEY UPDATE c=9注释:您使用ON DUPLICATE KEY UPDATEDELAYED选项忽略 示例: 例我实际项目用:表数据导入另外表数据重复性考虑()唯索引:email: 复制代码 代码: INSERT INTO `table_name一` (`title`, `first_name`, `last_name`, `email`, `phone`, `user_id`, `role_id`, `status`, `campaign_id`) SELECT '', '', '', `table_name二`.`email`, `table_name二`.`phone`, NULL, NULL, 'pending', 二9 FROM `table_name二` WHERE `table_name二`.`status` = 一 ON DUPLICATE KEY UPDATE `table_name一`.`status`='pending' 再贴例: 复制代码 代码: INSERT INTO `class` SELECT * FROM `class一` ON DUPLICATE KEY UPDATE `class`.`course`=`class一`.`course` 其关键:DELAYED 做快速插入并关失效性提高插入性能 IGNORE 关注主键应记录存则添加则忽略 特别说明:MYSQLUNIQUE索引null字段失效说(a字段建立唯索引): 复制代码 代码: INSERT INTO `test` (`a`) VALUES (NULL)重复插入(联合唯索引

这个没有太好的方法

我给你个方案

你看行不行

在输入框附近单独开一个div

把like能搜索到的相近数据放到里面显示出来

像上面的例子

输入的人自己就能看到

数据库里面出现

就表示已经有了

让他自己注意不要输入了


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11925302.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存