将Excel数据导入SQL Server,然后阻止从一列重复数据

我正试图将Excel数据导入到SQL Server中。 下面的代码适用于我。

但我的问题是,它重复从一个特定的列名称的数据行。 我们把它叫做列名'1',在我的存储过程中,我添加了一个参数('01'),它可以过滤掉重复的数据,即使它不是唯一的键列,但它是一个主键,完全可以被复制。

而我不知道如何执行我的存储过程的参数('01')在C#中插入select语句…所以我想要做的是,只是添加一个'如果语句'比较从表'tblname'的Excel …这是可能的吗?

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; using Excel; using System.Data; using System.Data.SqlClient; using System.Configuration; namespace RASImportExcelToSql { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { OpenFileDialog ope = new OpenFileDialog(); ope.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm"; if(ope.ShowDialog() == DialogResult.Cancel) return; FileStream stream = new FileStream(ope.FileName,FileMode.Open); IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); DataSet result = excelReader.AsDataSet(); DataClasses1DataContext conn = new DataClasses1DataContext(); foreach (DataTable table in result.Tables) { foreach (DataRow dr in table.Rows) { tblname addtable = new tblname() { 1 = Convert.ToString(dr[1]), 2 = Convert.ToString(dr[2]), 3 = Convert.ToString(dr[3]), 4 = Convert.ToDateTime(dr[4]), 5 = Convert.ToDecimal(dr[5]), 6 = Convert.ToString(dr[6]), 7 = Convert.ToString(dr[7]), 8 = Convert.ToString(dr[8]), 9 = Convert.ToString(dr[9]), 10 = Convert.ToDateTime(dr[10]), 11 = Convert.ToString(dr[11]), 12 = Convert.ToBoolean(dr[12]) }; conn.tblname.InsertOnSubmit(addtable); } } conn.SubmitChanges(); excelReader.Close(); stream.Close(); MessageBox.Show("Try"); } } } 

这就是我想要做的….

 foreach (DataTable table in result.Tables) { foreach (DataRow dr in table.Rows) { if((1 = Convert.ToString(dr[1)) <> tblname.1) { tblname addtable = new tblname() { 1 = Convert.ToString(dr[1]), 2 = Convert.ToString(dr[2]), 3 = Convert.ToString(dr[3]), 4 = Convert.ToDateTime(dr[4]), 5 = Convert.ToDecimal(dr[5]), 6 = Convert.ToString(dr[6]), 7 = Convert.ToString(dr[7]), 8 = Convert.ToString(dr[8]), 9 = Convert.ToString(dr[9]), 10 = Convert.ToDateTime(dr[10]), 11 = Convert.ToString(dr[11]), 12 = Convert.ToBoolean(dr[12]) }; conn.tblname.InsertOnSubmit(addtable); } else { MessageBox.Show('None'); } } conn.SubmitChanges(); excelReader.Close(); stream.Close(); MessageBox.Show("Try"); } 

这可能吗? 如果不是,我应该尝试其他什么方法? 示例代码或类似的链接将是非常有帮助的。