小编典典

SQL INSERT-无效的列名

sql

正如您从上一篇文章中看到的那样,我是使用C#创建网站的新手(尽管我有相当的经验将其用于Windows
Forms应用程序)。强大的功能使我远离PHP,但是我一直在失败,因为我认为这是基础知识。

无论如何,这是我的问题。我正在尝试创建一个到SQL数据库的简单条目。我知道我与数据库的连接很好,因为我可以整天取消SELECT查询,但是在使用Insert时遇到了麻烦。

这是我的代码:

string filename = "abc123.jpg";
SqlConnection link = new SqlConnection(//you dont need to see my data here ;));
string sqlcode = "INSERT INTO file_uploads (upload_filename VALUES ("+filename+")";
SqlCommand sql = new SqlCommand(sqlcode,link);
link.open();
sql.ExecuteNonQuery();

这导致从尝试/捕获返回“无效的列名称abc123.jpg”。

任何帮助,将不胜感激。(我希望他们会让我用PHP大声笑!)

谢谢,

Tripbrock


阅读 297

收藏
2021-04-14

共1个答案

小编典典

列名后缺少括号,该值表示字符串,因此必须用引号引起来:

string sqlcode = "INSERT INTO file_uploads (upload_filename) " + 
                 "VALUES ('"+filename+"')";

但是,正确的方法是使用参数化查询:

string filename = "abc123.jpg";
SqlConnection link = new SqlConnection(/*you dont need to see my data here ;)*/);
string sqlcode = "INSERT INTO file_uploads (upload_filename) VALUES (@filename)";
SqlCommand sql = new SqlCommand(sqlcode,link);
sql.Parameters.AddWithValue("@filename", filename);
link.open();
sql.ExecuteNonQuery();
2021-04-14