下面是我精简的 C#:
thisConnection.Open();
string commandtext = "Insert into Table (Comments)values('@Comments')";
SqlCommand command = new SqlCommand(commandtext, thisConnection);
command.Parameters.Add("@Comments", SqlDbType.VarChar).Value = Comments;
command.ExecuteNonQuery();
thisConnection.Close();
我几乎可以输入任何东西,在输入数据库之前删除某些特殊字符,这对我来说很好,即使是一个单引号也会在工作中引发扳手。我已经尝试添加.Replace("'","''");
到Comments
变量中,但这并没有改变任何东西,尽管使用参数应该可以防止这种情况发生。
我知道这样的问题被问了很多,但到处都只是指向“使用参数!”
编辑:看到四个人说了同样的话,我在这里全部回复。我已经删除了周围的单引号@Comments
,但问题是完全相同的。任何带单引号的输入根本不会输入到数据库中。
.replace(/'/g,"''")
在我们使用 javascript 之前,我已经添加了,这是有效的,但我不明白为什么我应该这样做。