PDA

View Full Version : A column named 'id' already belongs to this DataTable



iekrang
دوشنبه 22 خرداد 1385, 07:43 صبح
سلام.
من از دیتاتیبل به عنوان منبع دیتاگریدم استفاده میکنم.که اطلاعات این دیتاتیبل رو دستی میخونم.

private void MakeDataTableAndDisplay(){
// Create new DataTable.
DataTable myDataTable = new DataTable("MyDataTable");

// Declare DataColumn and DataRow variables.
DataColumn myDataColumn;
DataRow myDataRow;
// Create new DataColumn, set DataType, ColumnName and add to DataTable.
myDataColumn = new DataColumn();
myDataColumn.DataType = System.Type.GetType("System.Int32");
myDataColumn.ColumnName = "id";
myDataTable.Columns.Add(myDataColumn);
// Create second column.
myDataColumn = new DataColumn();
myDataColumn.DataType = Type.GetType("System.String");
myDataColumn.ColumnName = "item";
myDataTable.Columns.Add(myDataColumn);
// Create new DataRow objects and add to DataTable.
for(int i = 0; i < 10; i++){
myDataRow = myDataTable.NewRow();
myDataRow["id"] = i;
myDataRow["item"] = "item " + i;
myDataTable.Rows.Add(myDataRow);
}
// Set to DataGrid.DataSource property to the table.
dataGrid1.DataSource = myDataTable;
}

ولی الان همچین پیغامی رو دریافت میکنم.
A column named 'id' already belongs to this DataTable
چطور میتونم حلش کنم؟:متفکر:
ممنون میشم اگر راهنمایی کنید.

manager
دوشنبه 22 خرداد 1385, 21:24 عصر
این خطا هنگامی ظاهر می شه که شما قبلا فیلدی با نام ID رو به جدول اضافه کردید و دوباره قصد دارید همون ستون رو به جدول اضافه کنید..
کدهای شما مشکلی نداشت ولی برای اینکه مشکلتون حل بشه


myDataTable.Columns.Clear();

رو قبل از اضافه کردن ستون به کدهاتون اضافه کنید.

iekrang
سه شنبه 23 خرداد 1385, 13:09 عصر
بی نهایت ممنون از توجهتون.
خودم این به ذهنم رسیده بود ولی این طوری نوشتم و حل نشد مشکل!:متفکر:


myDataTable.Clear();

حالا یه سوال:
این کدی که لطف کردید مشکلم رو حل کرد ولی هر دفعه سطرهای خالی به dataTable اضافه میکنه.این طوری حلش کردم:


myDataTable.Rows.Clear();

درسته به نظرتون؟

white fox
سه شنبه 23 خرداد 1385, 13:32 عصر
عجیب هست که همون کد اولتون مشکل داره...
چون من کد شما رو عینا کپی کردم و بدون هیچ مشکلی اجرا شد فقط تش یه Datagrid1.Databinde() اضافه کردم همین....شما به دنبال مشکل در قسمت دیگه ای از کدتون بگریدید..این قسمت هیچ اشکالی نداشت.

iekrang
سه شنبه 23 خرداد 1385, 14:17 عصر
مرسی از دقتتون.حق با شماست.
من این مشکل رو دفعه اول اجرا ندارم.این پیغام رو وقتی بهم میده که من برگردم و دوباره احتیاج به اجرای این قسمت داشته باشم(که این کار هم توی برنامم زیاد انجام میشه)
یه نکته ای که باید توجه داشته باشید داده های داخل حلقه رو فعلاً برای تست اینجا نوشتم وگرنه در برنامه اصلیم داده های یه فایل xml هست که پر میشه و فیلد ID فقط تکراریه(شماره حلقه)