PDA

View Full Version : مبتدی: مشکل با دیتاگرید



kingtak
سه شنبه 12 دی 1391, 15:38 عصر
من دو تا دیتا گرید دارم که هر کدوم از یه دیتابیس داده هاشون رو میگیرن و یک دکمه.
حالا میخوام وقتی روی دکمه کلیک کردم آیتم انتخاب شده از دیتاگرید اول به دیتاگرید دومی بره و توی دیتابیسش ذخیره بشه.ولی درست کار نمیکنه.نمیدونم چرا!!!!!!
از کوئری ins ایراد میگیره.

Exception has been thrown by the target of an invocation.


try
{
bilDataContext dl = new bilDataContext();
LibraryDataContext db = new LibraryDataContext();
BookTable bt = dataGrid1.SelectedItem as BookTable;
var ins = (from p in db.BookTables
where p.id == bt.id
select p).Single();

string _bName = ins.bName;
string _author = ins.author;
string __language = ins.language;
string _pageCount = ins.pageCount;
X_BookTable xbt = new X_BookTable()
{
bName=_bName,
author=_author,
language=__language,
pageCount=_pageCount
};

dl.X_BookTables.InsertOnSubmit(xbt);
db.SubmitChanges();

bilDataContext dd = new bilDataContext();
var q2 = dd.X_BookTables;
dataGrid2.ItemsSource = q2;

}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

danialafshari
سه شنبه 12 دی 1391, 16:43 عصر
سلام
ببخشید درست متوجه نشدم
هر دو دیتاگرید داده هاشون رو از یک دیتابیس میگیرن یا از 2 دیتابیس مختلف؟
خواستم ببینم که Relation نباشد
دوست عزیز شما نیازی نیست با datagrid کاری بکنید و تنها کار با بانک اطلاعاتی است
راهی که الان به ذهنم میرسه اینه که مقادیر رو به textBox ها Bind کنید و از textBox ها به datagrid2 همانند یک داده Insert کنید
موفق باشید

kingtak
سه شنبه 12 دی 1391, 21:25 عصر
سلام
ببخشید درست متوجه نشدم
هر دو دیتاگرید داده هاشون رو از یک دیتابیس میگیرن یا از 2 دیتابیس مختلف؟
خواستم ببینم که Relation نباشد


بله دوست عزیز دوتا دیتابیس مختلف دارم.هر دیتاگرید از یک دیتابیس جداگانه اطلاعات میگیرن.



دوست عزیز شما نیازی نیست با datagrid کاری بکنید و تنها کار با بانک اطلاعاتی است
راهی که الان به ذهنم میرسه اینه که مقادیر رو به textBox ها Bind کنید و از textBox ها به datagrid2 همانند یک داده Insert کنید

خوب منم هم همینکار رو انجام دادم ولی به جای اینکه توی تکست باکس بریزم توی متغیر ها ریختم بعد insert کردم.

danialafshari
چهارشنبه 13 دی 1391, 13:27 عصر
سلام دوست عزیز
من طبق چیزی که بهت گفتم انجام دادم و کار داد !
فیلد های ورودی باید با فیلد های جدول بعد یکی باشند
شاید مشکل از کد Insert شماست
اینو ببینید:

Mahmoud.Afrad
چهارشنبه 13 دی 1391, 16:35 عصر
نیازی به جستجو در دیتابیس اول نیست دیگه. شما از گریدویو سطر رو میخونید کافیه.
شما به dl اینزرت کردید و db را SubmitChanges می کنید؟!!!
در ضمن نیازی به شئ ساختن از مدل مبدا نیست ، مدل مقصد کافیه.
سعی کنید اشیائی که از مدل ها میسازید رو در انتها dispose کنید و یا از using استفاده کنید. مدام از مدلهاتون شئ نسازید از همون قبلی استفاده کنید.
کد شما به اینصورت ساده میشه:

BookTable bt = dataGrid1.SelectedItem as BookTable;
if (bt != null)
{
X_BookTable xbt = new X_BookTable()
{
bName = bt.bName,
author = bt.author,
language = bt.language,
pageCount = bt.pageCount
};
try
{
using (bilDataContext dl = new bilDataContext())
{
dl.X_BookTables.InsertOnSubmit(xbt);
dl.SubmitChanges();
dataGrid2.ItemsSource = dl.X_BookTables;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

gwbasic
چهارشنبه 13 دی 1391, 16:43 عصر
لطف کنید من بعد عنوانی که دربر گیرنده سوالتون باشه را در عنوان تاپیک مطرح کنید. مشکل با دیتاگرید کلی است و چیزی رو مشخص نمی کنه

kingtak
چهارشنبه 13 دی 1391, 22:49 عصر
لطف کنید من بعد عنوانی که دربر گیرنده سوالتون باشه را در عنوان تاپیک مطرح کنید. مشکل با دیتاگرید کلی است و چیزی رو مشخص نمی کنه
معذرت میخوام مدیر عزیز!
آخه نمیدونسم مشکل دقیقا از کجاست.به همین دلیل یه چیز کلی رو به عنوان موضوع انتخاب کردم.