2016-11-03 49 views
0

我有以下代码在vb.net中按字母顺序对SQL Server表进行排序。它在SQL Server Management Studio中工作,但是当我在vb.net中运行代码时,什么都没有发生。vb.net SQL命令排序SQL表

我是否需要更新SQL Server表以及如何?我可以直接从vb.net执行此操作吗?

Dim opdragsorteeraplhanumeries As New SqlCommand 
    konneksie.ConnectionString = "Data Source=GIDEON-E-LAPTOP\SQLEXPRESS2014;Initial Catalog=SkeduleringDatabasis;Integrated Security=True" 
    konneksie.Open() 
    opdragsorteeraplhanumeries.Connection = konneksie 
    opdragsorteeraplhanumeries.CommandText = "SELECT * FROM Oesskattings " & _ 
    "ORDER BY " & _ 
     "CASE WHEN ISNUMERIC(blokno) = 1 THEN right(Replicate('0',21) + blokno, 21) " & _ 
      "WHEN ISNUMERIC(blokno) = 0 then Left(blokno + Replicate('',21), 21) " & _ 
      " ELSE blokno " & _ 
     " End " 

    opdragsorteeraplhanumeries.ExecuteNonQuery() 
    konneksie.Close() 
    MsgBox("Alphanumeries gesorteer") 

问候

+0

您只是没有看到结果。尝试'opdragsorteeraplhanumeries.ExecuteQuery()'并读取结果集。 – wdosanjos

+1

您无法更改记录的顺序,只能按特定顺序选择它们。 – artm

+0

你的意思是什么都没有发生?你的意思是没有数据?如果你想看到你的select语句的返回值,你应该使用ExecuteScalar而不是ExecuteNonQuery。恩。 opdragsorteeraplhanumeries.ExecuteScalar()。然后,将其放入数据集或数据表中。 – jelliaes

回答

2

有没有一个表对那里的排序。无论代码是否在SSMS中执行,它所做的是从表中获取数据并对其进行排序。桌子保持原样。如果您打算真正改变表格中的数据顺序,那么您必须将原始表格中的数据移动到临时表格中,然后再返回,在两个步骤之一中进行排序。

虽然会有真正的意义吗?为什么你认为你需要按照特定的方式对表格进行排序,如果这真的是你需要的,那为什么不是这样开始呢?更有可能的是,您应该在检索数据时对数据进行排序,或者创建一个可以排序并从中获取数据的视图。