如何将变量连接到SqlCeCommand?

时间:2013-11-26 18:27:51

标签: c# sql-server

我现在正在参加C#课程,并试图从我的数据库中获取一些数据。

在我的公共函数中,我有一个局部变量:string genre = "drama";

现在我想将该变量连接到我的SqlCeCommand:

SqlCeCommand command = new SqlCeCommand("SELECT * FROM Movie WHERE Genre =" + genre, connection);

但我无法做到。

所以我的问题是:如何将变量追加或连接到SqlCeCommand?

3 个答案:

答案 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));