Я пытаюсь добавить строку, полученную из базы данных, в 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» не принадлежит к столу.
Должен ли я копировать каждый элемент отдельно? – user2866238
Да. Или вы можете обернуть сопоставленное подачу и запросы с помощью [TableAdapter] (http://msdn.microsoft.com/en-us/library/bz9tthwx.aspx). – wonko79
, пожалуйста, обратите внимание на изменения !, Извините, что беспокою вас, но я обнаружил еще одну ошибку! – user2866238