2014-06-10 117 views
-2

由於Id列是按asc順序排序的,我想將排序更改爲desc順序。我有以下表格enter image description here在C#中按降序排列sql表

我正在使用以下代碼來執行desc排序,但表中沒有任何反應。

private void button4_Click(object sender, EventArgs e) 
    { 
     string columnName = textBox9.Text; 
     try 
     { 
      using (SqlConnection cn = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Produkt.mdf;Integrated Security=True")) 
      { 
       cn.Open(); 
       using (SqlCommand command = new SqlCommand("SELECT Id, Navn, Varenr, Antal, Enhed, Priseksklmoms, Konto FROM ProduktTable ORDER BY [" + columnName + 
      "] DESC", cn)) 
       { 
        command.ExecuteNonQuery(); 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("Error\n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
     } 

    } 

我在寫textBox9列名「ID」,並ExecuteNonQuery方法它引發了「-1」每次都返回。爲什麼表格不執行所需的排序?

在此先感謝

回答

1

SqlCommand.ExecuteNonQuery method

對於UPDATE,INSERT和DELETE語句,返回值是 數受命令行。當插入或更新的 表中存在觸發器時,返回值包括受插入或更新操作影響的行的編號 以及受觸發器或觸發器影響的行的編號 。 對於所有其他類型的 語句,返回值爲-1。如果發生回滾,則返回值 的值也是-1。

由於您使用SELECT語句,所以..

順便說一句,你應該總是使用parameterized queries。這種字符串連接對於SQL Injection攻擊是開放的。