gpt4 book ai didi

c# - 如何修复 MSSQL 上的 "Invalid Column Name"SQL 异常

转载 作者:搜寻专家 更新时间:2023-10-30 21:45:40 24 4
gpt4 key购买 nike

我试图在运行时在代码中传递要检查的列名和值。但是我得到了一个:

"Invalid Column Name "

异常。代码如下:

cmd = new SqlCommand();
con.Open();
cmd.Connection = con;
cmd.CommandText = "INSERT INTO rezervasyon (Ad,Soyad,TelefonNo,OdaSayisi,KişiSayisi," +
"Ucret,Acıklama,GirisTarihi,CikisTarihi,KayitTarihi) VALUES " +
"(" + isim + ",'" + soyisim + "','" + telefon + "'," +
"'" + oda_sayisi + "','" + kisi_sayisi + "','" + ucret + "'," +
"'" + aciklama + "','" + giris_tar + "','" + cikis_tar + "'," +
"'" + current_tarih + "')";
cmd.ExecuteNonQuery();
con.Close();

最佳答案

你在这里遗漏了一个单引号 "+ isim + ",它应该是 '"+ isim + "'。但是,您应该始终使用 parameterized queries避免 SQL Injection并消除此类错误。

cmd.CommandText = "INSERT INTO rezervasyon (Ad,Soyad,TelefonNo,OdaSayisi,KişiSayisi,Ucret" +
",Acıklama,GirisTarihi,CikisTarihi,KayitTarihi) " +
"VALUES (@isim, @soyisim , ...)";
cmd.Parameters.AddWithValue("@isim", isim);
cmd.Parameters.AddWithValue("@soyisim", soyisim);
//Other parameters

虽然直接指定类型并使用Value属性比AddWithValue更好:

cmd.Parameters.Add("@isim", SqlDbType.VarChar).Value = isim;

Can we stop using AddWithValue() already?

关于c# - 如何修复 MSSQL 上的 "Invalid Column Name"SQL 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50597759/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com