Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 作为变量访问当前案例_C# - Fatal编程技术网

C# 作为变量访问当前案例

C# 作为变量访问当前案例,c#,C#,我正在使用switch..case根据产品id在我的页面上显示不同的内容: switch (productID) { case 1: string theSQL = "SELECT * FROM products WHERE id = " + theCurrentCase + "ORDER BY id DESC"; DataTable t

我正在使用switch..case根据产品id在我的页面上显示不同的内容:

            switch (productID)
            {
                case 1:
                    string theSQL = "SELECT * FROM products WHERE id = " + theCurrentCase + "ORDER BY id DESC";
                    DataTable theDT = dbConnectionAndQuery.dbResults(theSQL, ConfigurationManager.ConnectionStrings["mainConn"].ConnectionString);
                    break;
            }

是否有任何方法可以访问案例值(即上面示例中的1)?

当然,请使用
productID
:)

filler


filler

productID
将匹配
1
,如果要执行该代码块,那么您已经知道案例值是什么(它将是
productID


另一方面,不要这样连接SQL语句,因为它会使您容易受到SQL注入的影响。改用。在这种情况下,必须匹配
1
才能执行,但其他情况可能不安全(例如,如果您有
默认情况,则可能在
情况下)。在创建SQL查询时使用
参数是一种很好的做法。

谢谢您的回答。这只是一个本地站点,所以我不使用参数只是出于懒惰。不过还是要感谢您的关注。您还可以添加一个具有已知名称的已计算列来表示应用的案例。“选择*,1作为从产品中选择的案例,其中id=“+CurrentCase+”ORDER BY id DESC”;头脑一片空白。哦,太简单了!谢谢你的回复!如果所讨论的
开关
部分只有一个
大小写
标签(并且没有
默认
标签),如问题中所述,则可以使用相同的常量,此处为
1
。如果该部分有多个
案例
标签和/或
默认
标签,您可以再次使用
开关
表达式,此处为
productID
,与此答案相同。但是,表达式将再次求值,当然,如果求值代价很高,或者可能会第二次求值为新值(如
switch(DateTime.Today.DayOfWeek){…}
),最好在
switch
语句之前引入局部变量。