ExecuteNonQuery doğru kullanmışsın
bi kaç tavsiyem olacak
öncelikle dispose yapma bunun yerine
using(SqlCommand cmdKaydet2 = new SqlCommand("sp_ekle",baglanti))
{
cmdKaydet2.CommandType = CommandType.StoredProcedure;
cmdKaydet2.Parameters.Add(new SqlParameter("Adi", dt.Rows[i]["Adi"]));
cmdKaydet2.Parameters.Add(new SqlParameter("Soyadi", dt.Rows[i]["Soyadi"]));
cmdKaydet2.Parameters.Add(new SqlParameter("Yasi", dt.Rows[i]["Yasi"]));
cmdKaydet2.Parameters.Add(new SqlParameter("Adres", dt.Rows[i]["Adres"]));
cmdKaydet2.Parameters.Add(new SqlParameter("Adres2", dt.Rows[i]["Adres2"]));
cmdKaydet2.Parameters.Add(new SqlParameter("Tel", dt.Rows[i]["Tel"]));
cmdKaydet2.Parameters.Add(new SqlParameter("Tel2", dt.Rows[i]["Tel2"]));
cmdKaydet2.ExecuteNonQuery();
}bu şekilde dene..
ayrıca entity framework kullanmanı tavsiye ederim