title: Why do we need SqlCeCommand.Parameters.AddWithValue() to Insert a value?
body: <p>I have a C# WPF desktop application which uses SQL Compact 3.5 as its embedded database.
  In the insertion function it has</p>
  
  <pre><code>using (SqlCeCommand com = new SqlCeCommand(
      "INSERT INTO FooTable VALUES(@num)", con))
  {
      com.Parameters.AddWithValue("@num", num);
      com.ExecuteNonQuery();
  }
  </code></pre>
  
  <p>I don't get what the com.Parameters.AddWithValue() is about. I commented out this line of code and the insertion function run exactly the same. I thought ExecuteNonQuery carries out the insertion, so what is this Parameters.AddWithValue thing? </p>