2017-01-18 4 views
0

Я пытаюсь получить несколько значений из базы данных с каждой даты, где есть значение, вот так!SELECT from SQL inside for loop

var sumKG = 0; 
DateTime nextDay; 
//Just a random date for test purposes. 
var inputDate = "2016-12-27"; 

for (int i = 1; i < 5; i++) 
{ 

    var getData = "SELECT * FROM Test WHERE date = '" + inputDate + "'"; 

    foreach (var c in db.Query(getData)) 
    { 
     //This is the calculation that I want. 
     var total = c.kg * c.rep * c.sett; 

     //These three rows are date related and add 1 day to 
     //inputDate which is used above in the SQL query line. 
     DateTime thisDay = c.date; 
     nextDay = thisDay.AddDays(1); 
     inputDate = nextDay.ToString("dd/MM/yy"); 

     //This gives the total of the calculations done in each foreach loop. 
     sumKG += total; 
    } 
    @sumKG <br /> 
} 

Так что я хочу от этого в том, что, когда foreach сделал свою вещь, которую каждая строка в базе данных, в данном случае от «2016-12-27» он должен затем изменить inputDate к «2016 -12-28 "и снова запустите foreach для каждой строки, датированной этой новой датой.

Однако, в то время как запрос SQL находится внутри for loop это не работает, я получаю ошибку:

The data type is not valid for the boolean operation.

Я не уверен, что делать по этому поводу? Потому что, на мой взгляд, запрос sql должен находиться внутри for loop, иначе он не сможет получить новое значение inputDate?

Любые предложения? (Не MVC проект)

+0

попытка изменить inputDate = nextDay.ToString ("гггг-ММ-дд"); –

+0

Черт! На самом деле не думал, что это будет что-то делать, но на самом деле сработало! Благодаря! –

ответ

1

вы можете попробовать следующие вещи, а затем я должен работать ..

inputDate = nextDay.ToString("yyyy-MM-dd");