日期:2014-05-17  浏览次数:21070 次

C#从excel中导入数据到数据库怎么避免重复
我从excel中导入了些数据到数据库中,但是不知道怎么提示数据有重复。
只限一列的数据。
我写了个程序进行判断,但是总是不能实现,请大神帮帮忙!
                    
SqlCommand comm = conn.CreateCommand();                    
comm.CommandText = "select ass_catid from assets";     //获取数据库内catid的内容  
string d=comm.CommandText ;                 
com.Parameters["@固定资产类别ID"].Value = dt.Rows[i][j];          j++;
  
 //对固定资产编号的判断        
if (c != 11)     
{        
    MessageBox.Show("数据长度错误,请仔细检查第" + r + "行" + 2 + "列!");            
    conn.Close();       
}   
else       
{            
    if (dt.Rows [i][j].ToString ().Contains(d))         
   {   
       MessageBox.Show("与数据库数据有重复,请仔细检查第" + r + "行" + 2 + "列!");      
       conn.Close();              
   }
                  
   else      
   {           
      com.Parameters["@固定资产编号"].Value = dt.Rows[i][j];           
   }                
}
c# excel 数据库

------解决方案--------------------
DB数据查出来放在 DataTable 里,然后用 
DataRow[] existsRow = DataTable.Select(string.Format("列='{0}'"));
if (existsRow != null && existsRow.Length > 0)
{
   // 存在
}

------解决方案--------------------
首先我不太清楚你的contains(d)是怎么搞出来的 我觉得你要查重的话还是要对每一个数据插入数据库操作的时候进行查重
public string InsertCar(DataTable dt)
        {
            string strOut = "";
            int isImport=0, isRepeat=0, isBug=0,count=0;
                foreach (DataRow dr in dt.Rows)
                {
              &nbs