PL / SQL NVL和OracleParameter在C#中不起作用

时间:2018-03-23 11:40:35

标签: c# plsql

我正在尝试一些基本的东西,发现OracleParameter似乎没有像C#中那样绑定

在我的示例<Grid Name="grid1" Height="100"/> <ItemsControl> <ItemsControl.ItemTemplate> <DataTemplate> <Grid> <Grid.Triggers> <EventTrigger RoutedEvent="Grid.MouseDown"> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetName="grid1" Storyboard.TargetProperty="Height" From="100" To="60" Duration="0:0:5"> </DoubleAnimation> </Storyboard> </BeginStoryboard> </EventTrigger> </Grid.Triggers> </Grid> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> 中使用count of USERID时,参数似乎没有绑定。查询运行但不会返回任何行。但是当使用辅助选项OracleParameter时,事情就像假设一样。

有什么想法吗?

CaseLocalId

1 个答案:

答案 0 :(得分:2)

':CaseLocalId'文字 ':CaseLocalId' - 即由冒号,C,a等组成的字符串...不是参数的值;你可能意味着:

 nvl(:CaseLocalId,'%')

'{CaseLocalId}'在接近ADO.NET图层之前在C#中执行字符串注入,并且不使用参数;它是一个SQL注入漏洞 - 避免。

作为一般规则:C#中与SQL相关的文字应该从不具有$前缀,但@前缀是正常的,健康的并且很好。

请注意,您可能还需要添加:

cmd.BindByName = true;