2016-03-24 26 views
-2

SQL Server'a zaten bağlı bir web formum var. Ekleyebilirim ancak tablo zaten aynı bilgilere sahipse veri eklememek için doğrulama işlemini nasıl yapacağımı bilmiyorum.Asp.net'den SQL Server'a eklenen verileri nasıl doğrularım?

Bu işlem nasıl yapılabilir?

using (SqlConnection con = new SqlConnection("Data Source=hans-pc;Initial Catalog=CntExp;Integrated Security=True")) 
{ 
    SqlCommand cmd = new SqlCommand("INSERT INTO PreExp1 (Expe, Usuario) values (@Expe, @Usuario)", con); 
    cmd.Parameters.AddWithValue("@Expe", TextBox1.Text); 
    cmd.Parameters.AddWithValue("@Usuario", TextBox2.Text); 
    //cmd.Parameters.AddWithValue("@Fecha", Datenow()); 

    con.Open(); 

    int insertar = cmd.ExecuteNonQuery(); 

    Response.Write("Inserted" + insertar.ToString()); 
} 
+0

Bu eklemeye çalışın, benzersiz dizini vurun, hatayı işleyin. Ayrıca, işiniz bittikten sonra bağlantınızı açıkça kapatmanız gerekir. –

+0

StackOverflow'a Hoş Geldiniz! Sorunuz, bunu başarmak için birçok farklı yol olduğu için biraz geniştir. Veritabanını kodunuzdan (işlemin içinden) sorgulayarak veya veri tabanındaki tetikleyicileri kullanarak verilerin var olup olmadığını kontrol edebilirsiniz. SO, belirli kodlama problemlerinde size yardımcı olma olasılığı daha yüksektir. Yani, "aynı bilgi" nin ne anlama geldiğini daha spesifik olmalısınız. Semantikler, kodunuzda veya db düzeyinde doğrulamak isteyip istemediğinize karar vermede yardımcı olabilir. –

+0

@OmarLopez Tablonuzu doğru bir referans bütünlüğü ile doğru oluşturuyorsanız, ekiniz, uygun bir şekilde yakalayabileceğiniz ve işleyebileceğiniz bir istisna atmalıdır. –

cevap

0

Girdi parametrelerini kullanıyorsunuz. Bunun gibi satırlar, Giriş parametreleri olarak kabul edilirler. Verilerinizi doğrulamanın bir yolu bir Çıkış parametresi kullanmak olacaktır. gibi bir şey:

SqlParameter outParam = cmd.Parameters.Add("@MyParam", sqlDbType.Uniqueidentifier); 
outParam.Direction = ParameterDirection.Output; 

rekor var olup olmadığını belirleyen bir saklı yordam için bu geçirin ve geçer Boole geri C# kodu "Doğru" veya "Yanlış". Ardından outParam değerini kontrol edebilir ve kodu işlemeye devam etmek isteyip istemediğinizi belirleyebilirsiniz.

0

Veritabanında doğru bütünlük denetimlerine sahip olmanız dışında, WHERE EXISTS alt sorgusu uygulayabilirsiniz.

INSERT INTO PreExp1 (Expe, Usuario) 
VALUES (@Expe, @Usuario) 
WHERE NOT EXISTS (SELECT * FROM PreExp1 
        WHERE Expe = @Expe 
        AND Usuario = @Usuario) 
İlgili konular