C# 作为变量访问当前案例
我正在使用switch..case根据产品id在我的页面上显示不同的内容: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 (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
语句之前引入局部变量。