我现在正在参加C#课程,并试图从我的数据库中获取一些数据。
在我的公共函数中,我有一个局部变量:string genre = "drama";
现在我想将该变量连接到我的SqlCeCommand:
SqlCeCommand command = new SqlCeCommand("SELECT * FROM Movie WHERE Genre =" + genre, connection);
但我无法做到。
所以我的问题是:如何将变量追加或连接到SqlCeCommand?
答案 0 :(得分:4)
SqlCeCommand command = new SqlCeCommand("SELECT * FROM Movie WHERE Genre = @genre", connection);
command.Parameters.AddWithValue("@genre", genre);
你的第一次尝试是关闭的,如果语法是固定的,它可以工作,但使用参数将有助于防止注入攻击,这可能非常糟糕。
答案 1 :(得分:0)
您应始终使用SQL参数而不是字符串连接,以防止SQL注入。在您的情况下,这也将使您更容易编写有效的SQL查询:
SqlCeCommand command = new SqlCeCommand("SELECT * FROM Movie WHERE Genre = @genre", connection);
command.Parameters.AddWithValue("@genre", genre);
答案 2 :(得分:0)
使用参数
SqlCeCommand cmd = new SqlCeCommand("SELECT * FROM Movie WHERE Genre = @genre", conn));
cmd.Parameters.Add(new SqlCeParameter("@genre", genre));