Foxtable(狐表)用户栏目专家坐堂 → [求助]SQL SERVER2000的主键问题


  共有9156人关注过本帖树形打印复制链接

主题:[求助]SQL SERVER2000的主键问题

帅哥哟,离线,有人找我吗?
hiliuyong
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:436 积分:5082 威望:0 精华:0 注册:2012/3/27 15:33:00
[求助]SQL SERVER2000的主键问题  发帖心情 Post By:2013/1/11 18:08:00 [显示全部帖子]

在SQL SERVER2000中,狐表把_Identify设置为主键,可以防止主键重复,

有没有办法,在数据库中禁止列“单号”重复,

狐表的DATATABLE只是限制了加载的重复,如何实现数据库中也防止“单号”重复,请高人指教!

用狐表代码的方式我已经考虑过,如果行数多的话,要逐条判断,效率大受影响。

[此贴子已经被作者于2013-1-11 18:09:15编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
hiliuyong
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:436 积分:5082 威望:0 精华:0 注册:2012/3/27 15:33:00
  发帖心情 Post By:2013/1/12 17:07:00 [显示全部帖子]

lin

我是通过SQL SERVER设置了唯一约束,

代码如下:

'保存,并捕获错误代码
Dim x2 As Integer = 0
For Each r3 As DataRow In DataTables("收件").dataRows
    Try
        Tables("收件录入_Table1").Current.Save()
        msgbox(1)
    Catch ex As Exception
        Tables("收件录入_Table1").Position = x2  '定位出错行
        r3.SetError("运单编号","数据库中已经导入过该运单编号!")
        MessageBox.Show("存在错误,请处理完错误后重新计算!","提示",MessageBoxButtons.OK)
        Return
    End Try
    x2= x2+1
Next

 

但是程序只是在

    Try
        Tables("收件录入_Table1").Current.Save()
        msgbox(1)
这句循环,而且在msgbox(1)前弹出错误,CATCH并未捕获错误,请教了。


 回到顶部
帅哥哟,离线,有人找我吗?
hiliuyong
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:436 积分:5082 威望:0 精华:0 注册:2012/3/27 15:33:00
  发帖心情 Post By:2013/1/12 17:17:00 [显示全部帖子]

报错代码如下:

.NET Framework 版本:2.0.50727.3053
Foxtable 版本:2012.11.28.1
错误所在事件:
详细错误信息:
System.Data.OleDb.OleDbException: 语句已终止。
违反了 UNIQUE KEY 约束 'IX_收件'。不能在对象 '收件' 中插入重复键。
   在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
   在 System.Data.Common.DbDataAdapter.UpdateRowExecute(RowUpdatedEventArgs rowUpdatedEvent, IDbCommand dataCommand, StatementType cmdIndex)
   在 System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping)


 回到顶部
帅哥哟,离线,有人找我吗?
hiliuyong
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:436 积分:5082 威望:0 精华:0 注册:2012/3/27 15:33:00
  发帖心情 Post By:2013/1/21 18:53:00 [显示全部帖子]

这个是实现从远程数据库判断,而且数据量比较大,用代码判断比较简单,但如果导入数据量大的话,效率会异常低下,

我希望可能捕获唯一约束的那个报错,在导入每一条数据的时候,就减少一次通讯。

狐爸有没有办法可以让我捕获这个错误呢。


 回到顶部