2016-11-03 7 views
0

SQL Serverテーブルを英数字でソートするために、次のコードをvb.netに持っています。 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文の戻り値を確認する場合は、ExecuteNonQueryではなくExecuteScalarを使用する必要があります。例。 opdragsorteeraplhanumeries.ExecuteScalar()。次に、それをデータセットまたはデータテーブルに配置します。 – jelliaes

答えて

2

そこに行くのテーブルのないソートはありません。そのコードがSSMSで実行されるかどうかにかかわらず、テーブルからデータを取得してソートすることです。テーブルはまったくそのまま残っています。実際にテーブル内のデータの順序を変更するつもりなら、元のテーブルから一時テーブルにデータを移動してから、もう一度やり直して、2つの手順のいずれかで並べ替える必要があります。

本当にそれにはどんなポイントがありますか?なぜあなたはテーブルが特定の方法でソートされている必要があると思いますか?それが本当に必要なものであれば、どうしてそんなことが始まるのはなぜですか?おそらく、データを取得するときにデータを並べ替えるか、並べ替えを行ってそこからデータを取得するビューを作成する必要があります。

関連する問題