正如您从上一篇文章中看到的那样,我是使用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
列名后缺少括号,该值表示字符串,因此必须用引号引起来:
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();