Sql 向数据库中插入数据,怎么判断已经存在

guizilaile 2011-12-17 11:07:51
向数据库中插入一条数据 AIR001 前三位手动输入 后三位自动生成
数据库中已经存在AIR001 ,AIR002 ,AIR003
再插入 AIR 时 自动变成AIR004
...全文
685 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongt1 2011-12-19
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 jxyxhz 的回复:]
关于生成并发唯一性流水号的解决方案
http://www.52rs.net/ArticleView.aspx?gID=71bd9b1d-ad30-4f6e-896d-fed7dfbc1b3d
[/Quote]++
大神推荐.值得拥有。
chen_ya_ping 2011-12-19
  • 打赏
  • 举报
回复
select一下不就行了啊,条件就是根据要插入的数据进行判断
楼主你懂的
dongt1 2011-12-19
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 jxyxhz 的回复:]
关于生成并发唯一性流水号的解决方案
http://www.52rs.net/ArticleView.aspx?gID=71bd9b1d-ad30-4f6e-896d-fed7dfbc1b3d
[/Quote]+++++++++++++++++++++++++++Up拜摸虎姐
orain 2011-12-17
  • 打赏
  • 举报
回复
你还不如拆开来,分成两个字段,一个用于存 AIR,一个是自增字段,使用时再拼起来就完了。这样即能达到你的要求,并且还保证绝对不会有冲突。取最大值加 1,如果程序写不好,并发数较大时会产生重复的流水号。
Chyan 2011-12-17
  • 打赏
  • 举报
回复
取出数据中最大的一个数字并令其+1.拼成你想要的格式在增到数据库中。
lg279562263 2011-12-17
  • 打赏
  • 举报
回复
//验证用户名是否存在
if (TWoYaoDaiLiUserService.GetAllTWoYaoDaiLiUsersByWhereSql("where zhangHao='" + this.txtZhangHao.Text.Trim() + "'").Count > 0)
{
MessageBox.Show(this.Page,"温馨提示:账号已存在,请重新输入!");
return;
}

public static IList<TWoYaoDaiLiUser> GetAllTWoYaoDaiLiUsersByWhereSql(string whereSql)
{
string sqlAll = "SELECT * FROM TWoYaoDaiLiUser " + whereSql;
return GetTWoYaoDaiLiUsersBySql(sqlAll);
}
joyhen 2011-12-17
  • 打赏
  • 举报
回复
你要是保证它不一样,首先生成这个AIRxxx的时候就要考虑;然后写入时,查询当前AIRxxx是不是已经存在
zhang9418hn 2011-12-17
  • 打赏
  • 举报
回复
请看我的博客,原理是一样滴http://www.cnblogs.com/zhang9418hn/archive/2011/12/05/2274796.html
fennyli78 2011-12-17
  • 打赏
  • 举报
回复
设置成主键?
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yqyqyqyq0215 的回复:]
取出数据中最大的一个数字并令其+1.拼成你想要的格式在增到数据库中。
[/Quote]

这个方法也可以啊,每次按你这个字段降序查询取出第一行第一列的值,然后加1就OK拉,方法很多哦

上面引用点错了,饿
CalvinR 2011-12-17
  • 打赏
  • 举报
回复
楼主 用触发器是不是好点 找一下相关的内容 然后试着做
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lg279562263 的回复:]
//验证用户名是否存在
if (TWoYaoDaiLiUserService.GetAllTWoYaoDaiLiUsersByWhereSql("where zhangHao='" + this.txtZhangHao.Text.Trim() + "'").Count > 0)
{
MessageBox.Show(this.Page,"温馨提示:账号已存在,请重新输入!");
……
[/Quote]
这个方法也可以啊,每次按你这个字段降序查询取出第一行第一列的值,然后加1就OK拉,方法很多哦
  • 打赏
  • 举报
回复
看你怎么需要拉,5楼的说的不错,可以采纳一下,
还有一个方法就是插入数据时,写个方法自动生成你那个字段不就可以了嘛?AIR***,
也不用你自己判段啊
漫步的心 2011-12-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 orain 的回复:]

你还不如拆开来,分成两个字段,一个用于存 AIR,一个是自增字段,使用时再拼起来就完了。这样即能达到你的要求,并且还保证绝对不会有冲突。取最大值加 1,如果程序写不好,并发数较大时会产生重复的流水号。
[/Quote]


我觉得这样挺好的
dongt1 2011-12-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 orain 的回复:]
你还不如拆开来,分成两个字段,一个用于存 AIR,一个是自增字段,使用时再拼起来就完了。这样即能达到你的要求,并且还保证绝对不会有冲突。取最大值加 1,如果程序写不好,并发数较大时会产生重复的流水号。
[/Quote]楼主应该这么做+++

62,054

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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