我可以';t执行SqlCommand

本文关键字:执行 SqlCommand 我可以 | 更新日期: 2023-09-27 18:26:53

大家好,我有这个代码

cmd = new SqlCommand();
cmd.Connection = baglanti;
cmd.CommandText = "(musteriadi,musterisoyadi,gsm,email,sirketadi,Adres,Notlar) VALUES('" + txtMusteriAdi.Text.Trim() + "','" + txtMusteriSoyadi.Text.Trim() + "','" + txtGsm.Text.Trim() + "','" +txtEmail.Text.Trim() + "','" +txtSirketAdi.Text.Trim() + "','" +txtAdres.Text.Trim() + "','" +txtNotlar.Text.Trim() +"');";
baglanti.Open();
cmd.ExecuteNonQuery();
baglanti.Close();

我将cmd定义为public SqlCommmand,每次代码到达cmd.ExecuteNonQuery()时,它都会捕获我能做什么。

我可以';t执行SqlCommand

因为您忘记了语句的INSERT INTO部分。喜欢

INSERT INTO tableName(musteriadi,musterisoyadi,gsm,email,sirketadi,Adres,Notlar)

但更重要的是,您应该始终使用参数化查询。这种字符串串联对SQL注入攻击是开放的。

还可以使用using语句处理连接,并自动命令,而不是手动调用Close方法。

using(var baglanti = new SqlConnnection(yourConnectionString))
using(var cmd = baglanti.CreateCommand())
{
    cmd.CommandText = @"INSERT INTO tableName(musteriadi,musterisoyadi,gsm,email,sirketadi,Adres,Notlar)
                        VALUES(@ad, @soyad, @gsm, @email, @sirket, @adres, @notlar)";
    // Add your parameters values with Add method considering their types and size.
    baglanti.Open();
    cmd.ExecuteNonQuery();
}