2013-07-18 20 views
1

好傢伙我有這個代碼 ,我想它做簡單的事情:SqlCommand的過濾數據

SELECT * FROM klisluz WHERE IDzajsluz= id 
SELECT * FROM klisluz WHERE subkey = vyberradek 

但這種簡單的事,使這個問題: 目前其展示我行,其中子心不是等於vyberradek。這怎麼可能?

vyberradekINT ID,我通過string

for (int i = 0; i < dtg_ksluzby.Rows.Count;i++) 
      { 
       var row = dtg_ksluzby.Rows[i]; 
       int id = (int)row.Cells["ID"].Value; 

       using (var novyprikaz3 = new SqlCommand("SELECT * from klisluz WHERE subkey= '" + vyberradek + "' AND IDzajsluz='" + id + "'", spojeni)) 
       { 

        spojeni.Open(); 
        SqlDataReader precti3 = novyprikaz3.ExecuteReader(); 
        if (precti3.HasRows) 
        { 
         row.Cells[4].Value = true; 
        } 
        spojeni.Close(); 
       } 

轉讓是否有人幫我解決這件事情呢? 在此先感謝。 enter image description here

我發佈圖片顯示它選擇它不應該的行。

+0

什麼數據類型子鍵? – Marek

回答

3

嘗試從IDzajsluz濾波器刪除報價:

for (int i = 0; i < dtg_ksluzby.Rows.Count;i++) 
     { 
      var row = dtg_ksluzby.Rows[i]; 
      int id = (int)row.Cells["ID"].Value; 

      using (var novyprikaz3 = new SqlCommand("SELECT * from klisluz WHERE subkey= '" + vyberradek + "' AND IDzajsluz=" + id , spojeni)) 
      { 

       spojeni.Open(); 
       SqlDataReader precti3 = novyprikaz3.ExecuteReader(); 
       if (precti3.HasRows) 
       { 
        row.Cells[4].Value = true; 
       } 
       spojeni.Close(); 
      } 
     } 

引號(「」)具有用於VARCHAR字段,而不是爲數字值僅被使用。

編輯:LIKE不好在這種情況下,你應該使用數字類型,如果他們實際上是數字

+0

嗨,我試過兩種可能性,但它仍然選擇不等於subkey = vyberradek的值:o –

+2

什麼是子鍵的類型?文本或varchar? –

+0

子鍵是數據類型字符(3)我最好改變它的權利?即使我只使用這個子項中的數字 –