小编kob*_*obe的帖子

如果满足条件,SQL会执行内连接

我想要一个改善我的SQL代码的好方法,我必须在满足条件时使用内连接.我目前正在复制代码:

@SystemMerge bit

if (@SystemMerge=1)  
BEGIN
   SELECT
         .......
      FROM myTable
      INNER JOIN table ON table.param1=myTable.param1
      INNER JOIN systemTable on systemTable.param2=myTable.param2
   END
ELSE
   BEGIN
      SELECT
         .......
      FROM myTable
      INNER JOIN table ON table.param1=myTable.param1
   END
Run Code Online (Sandbox Code Playgroud)

我想以这样的方式做到这一点:

@SystemMerge bit
BEGIN
   SELECT
      .......
   FROM myTable
   INNER JOIN table ON table.param1=myTable.param1
   ***//the next 4 lines is not working, but this pseudo of what i want:***
   if (@SystemMerge=1)  
   begin
      INNER JOIN systemTable on systemTable.param2=myTable.param2
   end
Run Code Online (Sandbox Code Playgroud)

编辑: 解决方案(感谢@Damien_The_Unbeliever):

LEFT JOIN systemTable ON systemTable.param2=myTable.param2
WHERE 
   ((@SystemMerge=1 AND systemTable.param2 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

11
推荐指数
2
解决办法
6万
查看次数

c#short if语句不能与int一起使用?(INT = NULL)

我试图通过使用short-if缩短我的代码:

int? myInt=myTextBox.Text == "" ? null : 
    Convert.ToInt32(myTextBox.Text);
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:无法确定条件表达式的类型,因为''和'int'之间没有隐式转换

以下作品:

int? myInt;
if (myTextBox.Text == "") //if no text in the box
   myInt=null;
else
   myInt=Convert.ToInt32(myTextBox.Text);
Run Code Online (Sandbox Code Playgroud)

如果我在整数中替换'null'(比如'4')它也有效:

int? myInt=myTextBox.Text == "" ? 4: 
    Convert.ToInt32(myTextBox.Text);
Run Code Online (Sandbox Code Playgroud)

c# expression if-statement

7
推荐指数
1
解决办法
5242
查看次数

具有必需字段验证器的asp.net正则表达式验证器

我的问题是我想在同一个地方得到错误.

<td>
   <asp:TextBox> ...</asp:TextBox>
   <br />
      <asp:RegularExpressionValidator 
          ErrorMessage=""please enter 9 digis only" ...>
      </asp:RegularExpressionValidator>
      <asp:RequiredFieldValidator 
          ErrorMessage="this can't be blank" ...>
      </asp:RequiredFieldValidator>
</td>
Run Code Online (Sandbox Code Playgroud)

我附加了一个带有输出,外观和红色消息的图像,这是验证器.我希望错误消息将在同一个地方,因为只有一个错误可以打开.感谢帮助者(以及谁尝试).

代码的输出

asp.net validation

6
推荐指数
1
解决办法
1万
查看次数

gridview小部件过滤器中的yii2下拉列表

我想在YII2框架的Gridview小部件中创建一个关闭的下拉列表值.我现在的代码:

<?= GridView::widget([
    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [ //only fields name!
        ['class' => 'yii\grid\SerialColumn'],

        'id',
        'title',
        'statusId',
        'categoryId',
       ['class' => 'yii\grid\ActionColumn'],
    ],
]); ?>
Run Code Online (Sandbox Code Playgroud)

和statudId应该是3个可能的值之一.(1开,2进,3关)

php yii2

6
推荐指数
1
解决办法
1万
查看次数

c#DateTime.ParseExact异常在特定日期"dd/MM/yy"

我的代码看起来像:

DateTime.ParseExact(d, "dd/MM/yy", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

当日期是"31/11/10"时例外:

System.FormatException: The DateTime represented by the string is not supported in calendar System.Globalization.GregorianCalendar.
Run Code Online (Sandbox Code Playgroud)

被扔了.

在"31/10/10"或"31/12/10"的情况下它工作正常,为什么会发生?

.net c#

-2
推荐指数
1
解决办法
253
查看次数

标签 统计

c# ×2

.net ×1

asp.net ×1

expression ×1

if-statement ×1

php ×1

sql ×1

sql-server ×1

validation ×1

yii2 ×1