PDA

View Full Version : مبتدی: استخراج جدول از dataset!



ehsan3554
یک شنبه 29 اسفند 1389, 16:33 عصر
سلام
من یه برنامه کوچیک داشتم می نوشتم به این مشکل بر خوردم که قبلا بهش دقت نکرده بودم
من یه جدول بزرگ با فیلدای زیاد رو تو dataset ام fill کردم و می خوام از اون برای چند منبع داده ای دیگه استفاده کنم مثلا یه data table که فقط سه تا از فیلدای این جدول رو داشته باشه میدونم سادست شرمنده ولی گاهی آدم مشکلای بزرگو حل می کنه ولی تو سادترین هاش می مونه:خجالت:

درضمن اینم بگم که کارم کلا درست نیست و بهتره برای صرفه جویی تو حافظه تو هر زمان داده های مورد نیاز رو تو حافظه بیارید و آوردن کل جدول درست نیست

با تشکر از همه دوستای خوبم

ehsan3554
یک شنبه 29 اسفند 1389, 17:19 عصر
اینم متدم برای پر کردن data set


private void FillDataSet()
{
objdataset = new DataSet();
SqlCommand objcommand = new SqlCommand("Select * FROM NAME JOIN NUMBER ON NAME.ID=NUMBER.ID JOIN PICTURE ON NUMBER.ID=PICTURE.ID ORDER BY fname", objconnection);
objdataadapter = new SqlDataAdapter(objcommand);
objdataadapter.Fill(objdataset);
}


کسی نیست جواب مارو بده

peymanjon
یک شنبه 29 اسفند 1389, 18:51 عصر
DataSet ds = new DataSet();
DataTable dt=new DataTable();
dt.Columns.Add(ds.Tables[0].Columns["Your columns"]) ;

به همین روال بقیه ستونهای جدول خود را از دیتاست انتخاب و add کنید.
موفق باشید

ehsan3554
یک شنبه 29 اسفند 1389, 19:06 عصر
خودم هم همینو نوشتم این خطا رو میده

Column 'fname' already belongs to another DataTable.

peymanjon
دوشنبه 01 فروردین 1390, 10:31 صبح
من به این error برخورد نکردم ولی از محتواش معلومه ستون fname داره توسط یک table دیگه استفاده میشه ، در اصل این خطا زمانی پیش می آید که شما یک datarow را از یک جدول در جدول دیگر Add کنید.چون rows ها از نوع object هستن آن ها یک reference را به datatable که ازشون اومدند نگه میدارند.کاری که شما باید بکنید باید از importrow استفاده کنید نه از adding .
Adding زمانی کاربرد دارد که شما یک datarow جدید از table خود بسازید و بخواهید آن را add کنید.
به نظر من شما باید ستون هایی با نام های مشابه در table خود بسازید و داده ها را ستون به ستون ار دیتاست خود به table خود کپی کنید.حتما راه بهتری وجود دارد که دوستان دیگه می تونند کمک کنند ولی با این روش فعلا کار شما راه می افتد.
موفق باشید.

shadi khanum
دوشنبه 01 فروردین 1390, 12:09 عصر
این Error واسه اینه که شما دقیقا میخوای ستونی که به جدول دیگه ای تعلق داره رو به جدول جدیدتون اضافه کنی، شما باید یه datacolumn تعریف کنی، اسم و بقیه مشخصاتش رو از اون ستون که میخوای کپی کنی، بعد اون ستون جدید رو به دیتاتیبل Add کنی

shadi khanum
دوشنبه 01 فروردین 1390, 12:18 عصر
فرض کن یه دیتاست داری به اسم ds که یه جدول داره به اسم MY ، که میخوای یه جدول دیگه از روی اون بسازی که شامل مثلا سه تا ستون از این جدول به اسم Col1 و Col2 و Col3 باشه:
DataTable DT = new DataTable(ds.Tables["My"].TableName);
DataColumn Col1 = new DataColumn(ds.Tables["MY"].Columns["Col1"].ColumnName, ds.Tables["MY"].Columns["Col1"].DataType);
DataColumn Col2 = new DataColumn(ds.Tables["MY"].Columns["Col2"].ColumnName, ds.Tables["MY"].Columns["Col2"].DataType);
DataColumn Col3 = new DataColumn(ds.Tables["MY"].Columns["Col3"].ColumnName, ds.Tables["MY"].Columns["Col3"].DataType);
DT.Columns.Add(Col1);
DT.Columns.Add(Col2);
DT.Columns.Add(Col3);

Dt اون جدول جدیدی که ساخته میشه به همون اسم MY