我有一个SQL Server表,它具有列Blocks 1
,Blocks 2
和Blocks 3
。计算SQL字段名称以字开头
如果所有这些列中都有数据,我的程序将以编程方式在下一个数据块编号中创建另一列。在这种情况下,将创建的下一个标题将是Blocks 4
。
这已经适用于黑客行为(如下面的代码所示),当我的表中的列数有波动时,将无法正常工作。
con.Open()
Cmd = New SqlCommand("Select * From [Official] WHERE CONVERT(nvarchar(50), ID) ='" + Session("ID") + "'", con)
dr1 = Cmd.ExecuteReader
dr1.Read()
'If I add or removed columns in official table I need to add or subtract to number below!!!
Dim NumberOfBlocks As Integer = dr1.VisibleFieldCount - 15 'minus 15 because that is the number of items other than blocks within officials table
因此,这里是我的问题,所以我没有做上述不可靠黑客:
我怎么算我的表有多少次了,与“块”字开头的列名?
我希望能够在Visual Basic中使用SQL语法或仅在SQL中执行此操作。
感谢您的帮助
微软SQL就是我使用 – DannyBoy
然后你需要编辑你的问题,并添加标签'SQL-server' – Igor
'列名“块1”中,“块2”和“块3” '听起来你的数据库缺少1:m(或可能是m:m)的关系。让表格可以包含许多与之相关的块,并且不必计算列数 – Plutonix