【发布时间】:2013-08-30 15:20:40
【问题描述】:
我有一个名为tblCar 的表,其中有ID、CarNumber 和其他32 个字段。
32 列填写为s1,s2,s3,.......,s32,因为它们专用于备注它是否适用于 SEATS 可用(A)、预订(B)和 Sold(S)。
我想从该数据库计算可用座位、预订座位和售罄座位。 我应该如何编写查询?
是否可以从数据库中 32 个不同列的字符串 S、B 和 A 进行计数?
我想展示的是这样的.....S = 20, B = 10, A = 2;
SqlCommand cmd = new SqlCommand(
"Select count(*)
FROM tblCar
WHERE s1= 'S' or s2= 'S' or s3= 'S'
or s4= 'S' or s5= 'S' or s6= 'S'
or s7= 'S' or s8= 'S' or s9= 'S'
or s10= 'S' or s11= 'S' or s12= 'S'
or s13= 'S' or s14= 'S' or s15= 'S'
or s16= 'S' or s17= 'S' or s18= 'S'
or s19= 'S' or s20= 'S' or s21= 'S'
or s22= 'S' or s23= 'S' or s24= 'S'
or s25= 'S' or s26= 'S' or s27= 'S'
or s28= 'S' or s29= 'S' or s30= 'S'
or s31= 'S' or s32= 'S' ", con
);
count += cmd.ExecuteNonQuery();
这就是我为“已售”字段工作的方式。但它只显示 count = -128。我确实将计数初始化为 0
【问题讨论】:
-
您有正在使用或尝试过的样品吗?
-
试过
s1+s2+s3.... AS s? -
SqlCommand cmd = new SqlCommand("Select count(*) FROM tblCar WHERE s1= 'S' or s2= 'S' or s3= 'S' or s4= 'S' or s5= ' S' 或 s6= 'S' 或 s7= 'S' 或 s8= 'S' 或 s9= 'S' 或 s10= 'S' 或 s11= 'S' 或 s12= 'S' 或 s13= 'S'或 s14= 'S' 或 s15= 'S' 或 s16= 'S' 或 s17= 'S' 或 s18= 'S' 或 s19= 'S' 或 s20= 'S' 或 s21= 'S' 或 s22 = 'S' 或 s23= 'S' 或 s24= 'S' 或 s25= 'S' 或 s26= 'S' 或 s27= 'S' 或 s28= 'S' 或 s29= 'S' 或 s30= ' S' or s31= 'S' or s32= 'S' ", con);计数 += cmd.ExecuteNonQuery();这就是我为“已售”字段工作的方式。但它只显示计数 = -128。我确实将计数初始化为 0
-
@Kuroi Shinigami 您可以编辑您的问题以包含代码,以便它很好地理解 :)
-
试试 cmd.ExecuteScalar()
标签: c# sql-server