如何不将新数据添加到与数据库中的数据具有相似id的数据库中

本文关键字:数据 数据库 id 相似 添加 新数据 何不 | 更新日期: 2023-09-27 18:28:35

所以我在Windows窗体中创建了一个Project,我要做的是从Excel中获取数据并将其显示在Datagridview中。我在Sql Server上上传数据,然后在DVG中发送。每次在服务器上上传数据时,我都必须将新数据添加到旧数据中,但我在数据库中没有类似id的数据。我有在Sql Server中添加新数据的代码,但我不知道如何不添加新数据,这些数据与Sql中的数据具有类似id。有人知道怎么做吗?这是我的代码:

SqlBulkCopy oSqlBulk = null;
            string excelFilePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
            excelFilePath = Path.Combine(excelFilePath, label1.Text);
            OleDbConnection excelConn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + excelFilePath + ";Extended Properties=Excel 12.0;");
            try
            {
                excelConn.Open();
                OleDbCommand excelComm = new OleDbCommand("SELECT *FROM [Sheet1$]", excelConn);
                OleDbDataReader excelreader = excelComm.ExecuteReader();
                using(SqlConnection con = new SqlConnection("Data Source=DESKTOP-OETHK6U''SQLEXPRESS;Initial Catalog=Intel_DB;Integrated Security=True"))
                {
                    con.Open();
                    oSqlBulk = new SqlBulkCopy(con);
                    oSqlBulk.DestinationTableName = "Intel_Data";
                    oSqlBulk.WriteToServer(excelreader);
                }
                label2.Text = "Data has been added into database";
            }
            catch(Exception ex)
            {
                label2.Text = "Data has not been added into database";
                MessageBox.Show(ex.Message);
            }
            finally
            {
                oSqlBulk.Close();
                oSqlBulk = null;
                excelConn.Close();
                excelConn = null;
            }

如何不将新数据添加到与数据库中的数据具有相似id的数据库中

试试这个

if (not exists(select * from table where ID= @id))
insert into table(fields) values (values)

或者你可以在ID中设置唯一的约束,这样如果用户添加相同的id,它会在你处理它的地方抛出错误。