C# 如何处理逐字字符串文字?

C# 如何处理逐字字符串文字?,c#,string,oracle,string-literals,verbatim,C#,String,Oracle,String Literals,Verbatim,我有下面的oracleCommand,希望在下面进行更改,但有错误…除了我的+item+和+txtSrcUserID.Text.ToUpper()+。在oracleCommand中。如何将它们添加到命令中 原创 foreach (string Items in listBox39.Items) { using (OracleCommand crtCommand = new OracleCommand(@"SE

我有下面的oracleCommand,希望在下面进行更改,但有错误…除了我的+item+和+txtSrcUserID.Text.ToUpper()+。在oracleCommand中。如何将它们添加到命令中

原创

foreach (string Items in listBox39.Items)
                    {
                        using (OracleCommand crtCommand = new OracleCommand(@"SELECT  REGEXP_REPLACE ( REPLACE ( dbms_metadata.get_ddl ('PROCEDURE', 'HELL_'), '""USER1"".'),'^\s+', NULL, 1, 0, 'm') FROM dual", conn1))
                        {

                        }
                    }
我喜欢做类似于下面的

foreach (string Items in listBox39.Items)
                        {
                            using (OracleCommand crtCommand = new OracleCommand(@"SELECT  REGEXP_REPLACE ( REPLACE ( dbms_metadata.get_ddl ('PROCEDURE', '+ Items +'), '"" + txtSrcUserID.Text.ToUpper() + "".'),'^\s+', NULL, 1, 0, 'm') FROM dual", conn1))
                            {

                            }
                        }
但正如@SLaks在评论中所建议的,最好使用参数:


您正试图设置SQL注入漏洞。使用参数。如何使用参数?不起作用:(我有“USER1”,但你的答案只有一个引号“+txtSrcUserID.Text.ToUpper()+”我已经更新了答案,这取决于你的txtSrcUserID。文本内容仅为:USER1,我仍然鼓励你使用我答案中的链接来使用参数。
foreach (string Items in listBox39.Items)
{
    using (OracleCommand crtCommand = new OracleCommand(@"SELECT  REGEXP_REPLACE ( REPLACE ( dbms_metadata.get_ddl ('PROCEDURE', '" + Items + @"'), '""" + txtSrcUserID.Text.ToUpper() + @""".'),'^\s+', NULL, 1, 0, 'm') FROM dual", conn1))
    {

    }
}