VB.Net: добавление одной таблицы данных для каждой строки в другую таблицу данных (SQL-запросы) - PullRequest
0 голосов
/ 06 сентября 2018

Вот что я сделал в кратком изложении:

  1. Глобально определены две новые таблицы данных (назовем их dtFirstTable и dtSecondTable)

  2. Определены строковая переменная "str" ​​и переменная SqlClient.SqlCommand "sqc"

  3. Создана первая строка sql с переменной в условии (имена столбцов и переменных изменены для простоты):

    str = "SELECT *one column* FROM ... "  
    str &= "WHERE ... LIKE ... "  
    str &= "OR ColumnX = @variable1 "  
    sqc.CommandText = str  
    DoSql.addChars(sqc, @variable1, *globally defined value*)  
    dtFirstTable = DoSql.GetDataTable(sqc)
    
  4. Это прекрасно работает. Я ожидаю, что dtFirstTable будет иметь ровно три строки каждый раз, и вот что я получаю. Здорово. Теперь я хочу передать эти три строки в second DataTable с новой строкой SQL-запроса:

    str = " SELECT *multiple columns* "  
    str &= "FROM tblR TR "  
    str &= "LEFT JOIN tblB TB ON TR.ColumnY = TB.ColumnY "  
    str &= "WHERE TR.ColumnZ = @variable2 "  
    sqc.CommandText = str  
    

Теперь, если я просто добавлю следующие строки, все будет работать нормально; Я получу один ряд, и этот ряд будет правильным для того, что я хочу.

DoSql.addChars(sqc, @variable2, *value*)  
dtSecondTable =  DoSql.GetDataTable(sqc)  

НО, я хочу получить ТРИ строки для dtSecondTable, основываясь на трех строках в dtFirstTable. Итак, я пробовал цикл For:

For Each row As DataRow In dtFirstTable.Rows
  DoSql.addInt(sqc, "@variable2", row.Item("UniqueID"))  
Next row  
dtSecondTable =  DoSql.GetDataTable(sqc) 

Я получаю только одну строку в dtSecondTable, и по синтаксису вижу, что я просто создаю одну строку, затем меняю переменную дважды и перезаписываю одну и ту же строку. У меня вопрос, как мне написать это так, чтобы он добавлял строку в dtSecondTable для каждой строки в dtFirstTable, запрашивая значение «UniqueID» в каждой строке? Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...