2017-02-10 2 views
1

вот содержимое моего столамежду значениями из другого столбца

tbl_range 
RID // Primary Key , INT 
RangeFrom // Starting Range , DOUBLE 
RangeTo // End Range , DOUBLE 
EE // Output , DOUBLE 

поэтому запрос я пытаюсь выполнить это

SELECT EE FROM db.tbl_range WHERE RangeFrom <= @GP AND RangeTo >= @GP; 

я попытался запустить запрос на SQL и работать, но в C# I't не возвращает ничего, вот мой код

cc.SetCMD("SELECT EE FROM mia_payroll.tbl_sssrange WHERE RangeFrom <= @GP AND RangeTo >= @GP;"); 
using (myConn = new MySqlConnection(ConnectionClass.GetConnection())) 
{ 
    myConn.Open(); 
    using (cmDB = new MySqlCommand(cc.GetCMD(), myConn)) 
    { 
     cmDB.Parameters.AddWithValue("@GP", GP); 

    try 
    { 
     using (myReader = cmDB.ExecuteReader()) 
     { 
      while (myReader.Read()) 
      { 
       ee = myReader.GetOrdinal("EE"); 
       lblEE.Text = System.Convert.ToString(ee); 
      } 
     } 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
} 
myReader.Close(); 
myConn.Close(); 
     } 
    } 

и ГП определяется пользователем

ответ

1

Не используйте GetOrdinal, попробуйте:

while (myReader.Read()) 
{ 
    lblEE.Text = myReader[0].ToString();  
} 
+0

я спросил, прежде чем о том, что использовать для получения двойной от SQL и некоторые ответили ' GetOrdinal' почему? – Enriko

+0

GetOrdinal используется для других целей, см. Https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.getordinal(v=vs.110).aspx – apomene

1

Ваша логика не так, ГП должна быть в диапазоне

SELECT EE FROM db.tbl_range WHERE @GP BETWEEN RangeFrom AND RangeTo; 
+0

он сработал, но вернулся 0 – Enriko

Смежные вопросы