2013-10-24 1 views
0

Я пытаюсь добавить строку, полученную из базы данных, в DataTable.
Сначала я попытался с помощью bucketdt.Rows.Add(r); я получил ошибку говоря Row принадлежит другой таблице
Затем я использовал bucketdt.ImportRow(r); тогда не копирует строку на всех!Не удалось импортировать или добавить строку из datatable

if (HttpContext.Current.User.Identity.IsAuthenticated) 
    { 
     //DataTable f = new DataTable(); 
     dosObject = new DataOperations(); 
     bucketdt = new DataTable(); 
     count=0; 
     foreach (string key in Session.Keys) 
     { 
      string val = Session[key].ToString(); 
      DataRow r = bucketdt.NewRow(); 
      r = dosObject.SubCategoryDetails2(Convert.ToInt16(val)).Rows[0]; 
      bucketdt.ImportRow(r); 
      bucketdt.AcceptChanges(); 
     } 
     GridView1.Enabled = true; 
     GridView1.DataSource = bucketdt; 
     GridView1.DataBind(); 
    } 
    else 
     Response.Redirect(FormsAuthentication.LoginUrl); 

Я пропустил что-то?

Теперь я пытался адаптировать код, рассказанные @ wonko79

DataTable f = new DataTable(); 
     dosObject = new DataOperations(); 
     bucketdt = new DataTable(); 
     count=0; 
     foreach (string key in Session.Keys) 
     { 
      string val = Session[key].ToString(); 

      DataRow r = bucketdt.NewRow(); 
      f = dosObject.SubCategoryDetails2(Convert.ToInt16(val)); 
      r["Id"]=f.Rows[0].ItemArray[0].ToString(); 
      r["SubCategoryName"] = f.Rows[0].ItemArray[1].ToString(); 
      r["Make"] = f.Rows[0].ItemArray[2].ToString(); 
      r["Cost"] = f.Rows[0].ItemArray[3].ToString(); 
      //bucketdt.ImportRow(r); 
      bucketdt.Rows.Add(r); 
      bucketdt.AcceptChanges(); 

п теперь говорит, что строка содержит оленью кожу Колонок: «Id» не принадлежит к столу.

ответ

0

Вы переписываете свой DataRow r, который следует за схемой bucketdt с DataRow, следующего за другой схемой.

DataRow r = bucketdt.NewRow(); 
     r = dosObject.SubCategoryDetails2(Convert.ToInt16(val)).Rows[0]; // overwrites r with a DataRow following another schema 
+0

Должен ли я копировать каждый элемент отдельно? – user2866238

+0

Да. Или вы можете обернуть сопоставленное подачу и запросы с помощью [TableAdapter] (http://msdn.microsoft.com/en-us/library/bz9tthwx.aspx). – wonko79

+0

, пожалуйста, обратите внимание на изменения !, Извините, что беспокою вас, но я обнаружил еще одну ошибку! – user2866238

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

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