2013-06-16 4 views
1

У меня есть проблема с профессионалом связывания DataList из 2-х таблиц .... Я использовал этот код DataSet DS = DataManager.ExecuteDataSet ("select_unionmembers_full_info");Отображение DataList

ds.Tables[0].TableName = "unionmembers"; 
    ds.Tables[1].TableName = "user_sign_up"; 

    ds.Relations.Add(new DataRelation("stunion", ds.Tables["unionmembers"].Columns["stuid"], 

    ds.Tables["user_sign_up"].Columns["stu_id"], false)); 

    alreadyexistdl.DataSource = ds.Tables[0]; 

    alreadyexistdl.DataBind(); 
} 

и вот присоединиться запрос я использовал (select_unionmembers_full_info)
выберите *, имя пользователя, идентификатор из unionmembers, user_sign_up где stuid = stu_id и эта ошибка мне кажется!
Не можете найти таблицу 1.
Линия 14: Линия 15: ds.Tables [0] = ".TableName unionmembers"; Строка 16: ds.Tables [1] .TableName = "user_sign_up"; Line 17: Линия 18: ds.Relations.Add (новый DataRelation ("stunion", ds.Tables [ "unionmembers"] Колонки [ "stuid"]

вот Трассировка стека:.

[IndexOutOfRangeException: Cannot find table 1.] 

System.Data.DataTableCollection.get_Item (индекс Int32) +79 stunion_unionadmin.Page_Load (отправитель объекта, EventArgs е) в г: \ Нового окончания Project_2 \ Do7h Книга 1 \ stunion \ unionadmin.aspx.cs: 16 System.Web.Util.CalliEventHandlerDelegateProxy.Callback (отправитель объекта, EventArgs e) +51 Sy stem.Web.UI.Control.OnLoad (EventArgs е) +92 System.Web.UI.Control.LoadRecursive() +54 System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, булева includeStagesAfterAsyncPoint) +670

+0

кажется, ваш набор данных имеет только один стол – Karthik

+0

но как! ... запрос должен возвращать результаты из 2 таблиц! –

+0

Отправьте весь код, чтобы мы могли увидеть, откуда взялись 2 таблицы. – bbqchickenrobot

ответ

0

Чтобы получить два результата таблицы, вам необходимо передать две команды db. Например:

CommandString = "SELECT foo0 FROM foo0; SELECT foo1 FROM foo1;"; 
sda = new SqlDataAdapter(CommandString, conn); 
ds = new DataSet(); 
sda.Fill(ds); 
dt = ds.Tables[0]; 
dt1 = ds.Tables[1]; 
Смежные вопросы