所以我在Windows Forms中创建一个项目,我要做的是从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;
}
答案 0 :(得分:0)
试试这个
if (not exists(select * from table where ID= @id))
insert into table(fields) values (values)
或者你可以在ID
中设置唯一约束,所以如果用户添加相同的id,它会在你处理它时抛出错误..