我在Excel中使用VBA宏来将数据从单元格插入到SQL Server 2008数据库中。
我按顺序将数据放入单元格中,例如1,2,3,4,5 ...等
当VBA代码将上述数字插入数据库中的一列时......数字没有排序,它们看起来像2,3,1,4,5 ..
有没有理由为什么这样安排数据?它发生在文本以及数字上。
以下是我的一些代码;
Dim val1 As String, val2 As String, val3 As String, val4 As String
val1 = Range("B142").Value
val2 = Range("C142").Value
val3 = Range("D142").Value
val4 = Range("E142").Value
conn.Open sConnString
Dim item4 As String
item4 = "INSERT INTO [IndustrialComp].[dbo].[Network]("
item4 = item4 & " [server_name],[network_name],[license],[version]"
item4 = item4 & " )Values("
item4 = item4 & " '" & val1 & "', '" & val2 & "', '" & val3 & "','" & val4 & "')"
'row 2
Dim val5 As String, val6 As String, val7 As String, val8 As String
val5 = Range("B143").Value
val6 = Range("C143").Value
val7 = Range("D143").Value
val8 = Range("E143").Value
Dim item5 As String
item5 = "INSERT INTO [IndustrialComp].[dbo].[Network]("
item5 = item5 & " [server_name],[network_name],[license],[version]"
item5 = item5 & " )Values("
item5 = item5 & " '" & val5 & "', '" & val6 & "', '" & val7 & "','" & val8 & "')"
答案 0 :(得分:0)
数据库本身并不是按照添加内容的顺序排序的。相反,它们具有可用于定义不同订单的键。
如果您希望它们以特定顺序出现,例如添加它们的顺序,你必须添加一列来保存行号,或者你想要排序的任何内容。
如果您希望自动添加排序顺序列,可以使用IDENTITY
列:
CREATE TABLE Network(
-- This column will be filled in automatically starting with 1
ix int identity primary key,
-- These are your other columns.
[server_name] nvarchar(50),
[network_name] nvarchar(50),
[license] nvarchar(50),
[version] nvarchar(50)
)
(ix
是索引的缩写,通常用于标识列。如果更有意义,可以使用id
。)
然后,在阅读数据时,请记住使用ORDER BY ix
。