0

在我的程序中,我有这个声明......

ct = String.Format(@"select [Movie Selector] from WSTMDS3
            natural prediction join 
            (select

             '{0}'as[Age],
            '{1}'as[Education Level],
            '{2}'as[Gender],
            '{3}'as[Home Ownership],
            '{4}'as[Internet Connection],
            '{5}'as[Marital Status]

            )as MovieSelector",
             TextBox1.Text,
             DropDownList1.SelectedValue,
             DropDownList2.SelectedValue,
             DropDownList3.SelectedValue,
             DropDownList4.SelectedValue,
             DropDownList5.SelectedValue)
                ;

但是在下拉列表1“教育水平”中,我有一些价值,比如这个硕士学位'我如何在这个声明中使用单引号'。

谢谢

4

3 回答 3

10

您不应该使用它string.Format来构建您的查询。您应该使用参数化查询。

adomdCommand.CommandText = "SELECT ... @P1 ...";
adomdCommand.Parameters.Add(new AdomdParameter("P1", TextBox1.Text));
// etc..

有关的

于 2012-05-04T11:21:51.443 回答
1

使用 SqlCommand 和 SqlParameter。例子

SqlCommand sqlCom=new SqlCommand();
sqlCom.CommandText=@"select [Movie Selector] from WSTMDS3
        natural prediction join 
        (select

         @P0 as[Age],
        @P1 as[Education Level],
        @P2 as[Gender],
        @P3 as[Home Ownership],
        @P4 as[Internet Connection],
        @P5 as[Marital Status]

        ";
sqlCom.Parameters.AddWithValue("@P0",TextBox1.Text);
于 2012-05-04T11:24:46.840 回答
0

除了使用参数化查询 - T-SQL 语法中单引号的转义方法是将它们加倍。

于 2012-05-04T11:25:51.303 回答