在访问数据库中插入数据时捕获特定异常

时间:2012-02-17 12:14:30

标签: c# ms-access c#-4.0 ms-access-2003

我将数据插入访问数据库,如果数据已经存在,即找到重复的enty,则只需要更新该数据。

 public bool InsertInToTooltip()
        {
            InitializeSettingsDatabase();
            OleDbCommand command;
            command = new OleDbCommand(//Query, settingsDbConn);
            try
            {
                command.ExecuteNonQuery();
            }
            catch (Exception e)
            {
                UpdateTable();
            }
            CloseDatabase();
            return true;
        }

如果在acces数据库中插入重复的条目,是否会抛出任何特定的异常?

2 个答案:

答案 0 :(得分:0)

您应该检查记录是否存在并且发出插入或更新而不是使用例外。您可以将该逻辑包装在存储过程中,或者选择其他查询。

一体化

IF EXIST (select true from table where id = @id)
    Update table set x = y
 Else
    Insert into table (x, y) values ('x', 'y')

答案 1 :(得分:0)

如果您正在使用DataGridViews,ComboBox等控件,请尝试使用DataAdapter ......只要您将其链接到数据库源和控件,这将自动为您执行所有处理。否则我宁愿做一个额外的sql语句来检查数据是否在数据库中可用,例如

SELECT * FROM TABLE WHERE COLUMN = _VAR

根据它返回的内容,您可以选择INSERT或Update。我希望这会有所帮助。