2015-09-25 3 views
0

Я заполняющий набор данные из нескольких таблиц, используя соотношение по этому пути:DataSet связи с несколькими соединениями в запросе

private void UcitajZahtjeve() 
    { 
     string query1 = "SELECT tblrezgo.IDRadnik, CONCAT(tblradnik.Ime, ' ', tblradnik.Prezime) AS ImePrezime, tblrezgo.EmailRadnik, tblrezgo.creationTime, tblrezgo.IDUnos "; 
     query1 += "FROM tblrezgo "; 
     query1 += "LEFT JOIN tblradnik ON tblradnik.IDRadnik = tblrezgo.IDRadnik "; 
     query1 += "LEFT JOIN tblrezgolog ON tblrezgolog.IDUnos = tblrezgo.IDUnos "; 
     query1 += "WHERE (tblrezgolog.OdobrenoN=1 AND tblrezgolog.OdobrenoHR=1) "; 
     query1 += "ORDER BY tblrezgo.creationTime ASC"; 

     string query2 = "SELECT IDUnos, DatumGO, OdobrenoN, OdobrenoHR FROM tblrezgolog"; 

     gridZahtjevi.DataSource = dbTwoTableRelation(query1, query2, "Detalji", "IDUnos", "IDUnos").Tables[0]; 
     gridZahtjevi.LevelTree.Nodes.Add("Detalji", gridDetails); 
    } 

private DataSet dbTwoTableRelation(string query1, string query2, string relationName, string fieldName1, string fieldName2) 
     { 
     MySqlDataAdapter table1; 
     MySqlDataAdapter table2; 

     DataSet myDataSet = new DataSet(); 

     table1 = new MySqlDataAdapter(query1, this.connection); 
     table2 = new MySqlDataAdapter(query2, this.connection); 

     table1.Fill(myDataSet, "mainList"); 
     table2.Fill(myDataSet, "subList"); 

     myDataSet.Relations.Add(relationName, myDataSet.Tables["mainList"].Columns[fieldName1], myDataSet.Tables["subList"].Columns[fieldName2]).Nested = true; 

     return myDataSet; 

    } 

Запросов работают нормально, но если я запускаю этот код, я получаю сообщение об ошибке, даже приложение загружаются сетка пустой.

Первый шанс исключение типа «» System.ArgumentException произошло в System.Data.dll

Если удалить из Query1 один присоединиться пункт, то Everthing в порядке. Я не понимаю, что вызывает проблему, если два соединения проблемы?

ответ

1

Просто принести сконструированную Query1 во время выполнения и попытаться выполнить в базе данных, Тогда это будет легко Findout ошибка

+0

Я уже делаю это. Запрос работает нормально. Я думаю, что проблема заключается в методе DataSet dbTwoTableRelation() в строке myDataSet.Relations.Add (отношениеName, myDataSet.Tables ["mainList"]. Столбцы [fieldName1], myDataSet.Tables ["subList"]. Столбцы [fieldName2]). Вложен = true; Но я не знаю, почему ... – Josef

0

Использование запросов, как это. Он должен работать.


 string query1 = "SELECT tblrezgo.IDRadnik, CONCAT(tblradnik.Ime, ' ', 
        tblradnik.Prezime) AS ImePrezime, tblrezgo.EmailRadnik, 
        tblrezgo.creationTime, tblrezgo.IDUnos "; 
        query1 += "FROM tblrezgo "; 
        query1 += "LEFT JOIN tblradnik ON tblradnik.IDRadnik = 
        tblrezgo.IDRadnik , tblrezgo "; 
        query1 += "LEFT JOIN tblrezgolog ON tblrezgolog.IDUnos = 
        tblrezgo.IDUnos "; 
        query1 += "WHERE (tblrezgolog.OdobrenoN=1 AND 
        tblrezgolog.OdobrenoHR=1) "; 
        query1 += "ORDER BY tblrezgo.creationTime ASC"; 
+0

Существует ошибка, например Не уникальная таблица/псевдоним: 'tblrezgo' – Josef

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

  • Нет связанных вопросов^_^