当前位置: 首页 > 面试题库 >

如何在MSSQL上修复“无效列名” SQL异常

东方涛
2023-03-14
问题内容

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

“无效的列名”

例外。代码如下:

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 + "'。但是,您应始终使用参数化查询来避免SQL注入并摆脱此类错误。

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;

我们可以停止使用AddWithValue()吗?



 类似资料:
  • 问题内容: 我正在为我的应用程序使用Hibernate 3.2.5。 我有一张桌子和一张桌子。 部门java 员工.java HBM映射文件 以下是本机SQL的代码: 我得到了例外: 当我直接在数据库中运行查询时,我会得到正确的输出,但是在hibernate状态下,它给出的是。我已经确认列名仅是正确的。 请让我知道如何解决此问题。 问题答案: 您的映射中包含以下内容: 但是您的sql 和之间没有这

  • 当我直接在db中运行查询时,我得到了正确的输出,但在hibernate中,它给出了一个。我已经确认列名只是正确的。 请让我知道如何解决这个问题。

  • 问题内容: 我使用别名来引用计算列。这是我尝试制作的实际代码的一部分,用于计算相似度并返回相似度得分为3或更高的匹配项。 异常消息: 无效的列名“相似性”。 由于相似性不是真正的专栏文章,我将如何进行这项工作? 问题答案: 在查询的投影()阶段执行列别名和计算,该阶段在选择(和)阶段之后发生。因此,无法在子句或条件中引用它们,因为它们尚不存在。您可以将带有子句的查询用作子查询,也可以在子句中重复计

  • 问题内容: 正如您从上一篇文章中看到的那样,我是使用C#创建网站的新手(尽管我有相当的经验将其用于Windows Forms应用程序)。强大的功能使我远离PHP,但是我一直在失败,因为我认为这是基础知识。 无论如何,这是我的问题。我正在尝试创建一个到SQL数据库的简单条目。我知道我与数据库的连接很好,因为我可以整天取消SELECT查询,但是在使用Insert时遇到了麻烦。 这是我的代码: 这导致从

  • 我想使用来模拟请求和响应。为此,我使用docker映像。下面是docker-compose文件示例,其中使用。 现在为了增加期望。我使用以下mockserver java客户端。 但是当我调用rest api添加期望时,它就起作用了。 Curl-V-X将“http://mylocalhost.org:1080/mockserver/expected”

  • 问题内容: 我正在尝试将XML发送到服务器并取回XML。有什么办法可以解决/忽略此异常吗? 我知道状态行为空,这会引发此错误。 问题答案: 尝试看看您的服务器实际上返回了什么!它可能不是有效的HTTP响应。您可以使用以下方式将原始的http请求发送到服务器: 响应应类似于: