Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.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#_Sql_Wpf_Visual Studio 2010_Sql Update - Fatal编程技术网

C# 一次更新中有多个更新条件

C# 一次更新中有多个更新条件,c#,sql,wpf,visual-studio-2010,sql-update,C#,Sql,Wpf,Visual Studio 2010,Sql Update,我正在从事一个WPF、C#项目,并使用SQL server 2008。我有一个表Student_2012_2013,其中有一个名为varchar(10)的“class”列。我需要在每年年底更新学生的课程。例如,如果类为“托儿所”,则应将其更新为“LKG”,如果类为“LKG”,则应将其更新为“UKG”,“UKG”应更新为类“1”,“1”至“2”,依此类推,直至“11”至“12” 我可以在一个更新查询中完成它吗,或者我需要启动15个不同的更新查询吗?您可以使用CASE UPDATE Student

我正在从事一个WPF、C#项目,并使用SQL server 2008。我有一个表Student_2012_2013,其中有一个名为varchar(10)的“class”列。我需要在每年年底更新学生的课程。例如,如果类为“托儿所”,则应将其更新为“LKG”,如果类为“LKG”,则应将其更新为“UKG”,“UKG”应更新为类“1”,“1”至“2”,依此类推,直至“11”至“12”


我可以在一个更新查询中完成它吗,或者我需要启动15个不同的更新查询吗?

您可以使用
CASE

UPDATE  Student_2012_2013
SET     class = CASE WHEN class = 'Nursery' THEN 'LKG' 
                    WHEN class = 'LKG' THEN 'UKG'
                    WHEN class = 'UKG' THEN '1'
                    // WHEN ... continue with your conditions...
                    ELSE class // if it doesn't match to any condition
                 END

您可以在这个问题上使用
CASE

UPDATE  Student_2012_2013
SET     class = CASE WHEN class = 'Nursery' THEN 'LKG' 
                    WHEN class = 'LKG' THEN 'UKG'
                    WHEN class = 'UKG' THEN '1'
                    // WHEN ... continue with your conditions...
                    ELSE class // if it doesn't match to any condition
                 END

使用case语句更新表中的class列。例如:

Update Student_2012_2013 
set class = CASE 
        WHEN (CLASS = "NURSERY) THEN "LKG"
        WHEN (CLASS="LKG")THEN "UKG"
        ELSE "DEFAULT"
    END

使用case语句更新表中的class列。例如:

Update Student_2012_2013 
set class = CASE 
        WHEN (CLASS = "NURSERY) THEN "LKG"
        WHEN (CLASS="LKG")THEN "UKG"
        ELSE "DEFAULT"
    END

难道你不能编写一个查询并使用IF-THEN语句吗?难道你不能编写一个查询并使用IF-THEN语句吗?@SamarthAgarwal也许,我刚刚添加了
ELSE
,因为我在想,是否有
,它不会在任何条件下出现。但是,如果您确定所有案例至少符合条件,请删除
ELSE
。非常感谢。使用SQLCommand执行命令时出现以下错误:在“THEN”附近预期条件的上下文中指定的非布尔类型表达式。能否显示整个查询?基本上这是一个语法错误。
SqlCommand sda_0=new-SqlCommand(“更新student_2012_2013设置class=CASE当class='托儿所',然后设置class='LKG'当class='LKG'然后'UKG'当class='UKG'然后'1'当'1'然后'2'结束”,con)检查您最后一次
当您没有条件时。它应该是
。当class='1'然后'2'结束时
@SamarthAgarwal可能,我只是添加了
ELSE
,因为我在想,是否有
在任何条件下都不会落下。但是,如果您确定所有案例至少符合条件,请删除
ELSE
。非常感谢。使用SQLCommand执行命令时出现以下错误:在“THEN”附近预期条件的上下文中指定的非布尔类型表达式。能否显示整个查询?基本上这是一个语法错误。
SqlCommand sda_0=new-SqlCommand(“更新student_2012_2013设置class=CASE当class='托儿所',然后设置class='LKG'当class='LKG'然后'UKG'当class='UKG'然后'1'当'1'然后'2'结束”,con)检查您最后一次
当您没有条件时。它应该是
。当class='1'然后是'2'结束时