PDA

View Full Version : کنترل ها با فایل داده ها Bind نمی شوند



mehdik76
جمعه 09 اردیبهشت 1384, 16:17 عصر
سلام دوستان
من یه فرم با استفاده از ویزارد خود #Visual C درست کردم ولی از همون اول که دکمه Add رو می زنم این پیغامو میده ....

DataBinding could not find a row in the list that is suitable for all bindings. :sad2:

در ضمن داده های من یک فایل اکسس هستش که توش از داده های Text , Memo , Yes/No , Date/Time استفاده شده.

البته در فرمهای دیگه که Yes/No یا همون چک باکس رو ندارند این مشکل وجود ندارد و درست کار میکند ؟

به نظر شما من چیکار کنم ؟ :گیج:

فاطمه هاشمیان
جمعه 09 اردیبهشت 1384, 23:52 عصر
شما وقتی دکمه Add رو میزنید مقدار Yes یا No رو از یه چک باکس میگیره اینکه مشکلی نداره من نمونه برنامشو فرستادم اگر مورد سوال شما چیز دیگه ای بجز این برنامست لطفا" واضحتر بیان کنید این برنامه دومی رو بگیرید و تو Drive C قرار بدید اجرا کنید تا DataBasesh مشکل پیدا نکنه

mehdik76
شنبه 10 اردیبهشت 1384, 16:28 عصر
سلام خانم هاشمیان
منظور بنده از ویزارد خود ویژوال استودیو همون استفاده از
Add New Item -> Data Form

هستش که یه نمونه از برنامه که همون مشکل رو داره رو براتون اینجا میزارم تا ببینید مشکلم چیه ....

یاشار سابق
شنبه 10 اردیبهشت 1384, 16:50 عصر
خاصیت ThreeState رو توی کنترل‌های CheckBox به True تغییر بدین تا فیلدهای Null رو هم بتونن نشون بدن.

ولی در صورت امکان بهتره فیلدهای Yes\No رو توی دیتابیستون به صورت Required تعریف کنید که احتیاج به این کار نباشه.

mehdik76
شنبه 10 اردیبهشت 1384, 21:23 عصر
یاشار خان ممنونم از راهنمائیتون
ولی اصلا فرقی به حال برنامه نکرد .... همون پیغامو باز هم میده ....
کسی نیست مشکل ما رو حل کنه ؟؟؟؟؟ :گیج: :(

یاشار
یک شنبه 11 اردیبهشت 1384, 01:27 صبح
مشکل اینجاست که فیلد Yes/No توی Access از نوع Boolean واقعی نیست، چون مقدار Null هم قبول می‌کنه. برای اینکه هم این مشکل حل بشه هم بتونید مقادیر پیش‌فرض برای فیلد‌هاتون انتخاب کنید، کد دکمه Add رو به کد زیر تغییر بدید. (در واقع فقط یه خط حذف و دو خط اضافه شده ولی برای اینکه قاطی نشه همه‌اش رو گذاشتم )




private void btnAdd_Click(object sender, System.EventArgs e)
{
try
{
// Clear out the current edits
this.BindingContext[objNewDSet,"Table1"].EndCurrentEdit();

/*problematic when dealing with access*/
//this.BindingContext[objNewDSet,"Table1"].AddNew();

//manual insert default data
this.objNewDSet.Table1.AddTable1Row("Default",false,false,"Default",System.DateTime.Now);

//move the currency manager's cursor to the newly added row
this.BindingContext[objNewDSet,"Table1"].Position =
this.BindingContext[objNewDSet,"Table1"].Count -1 ;

}
catch (System.Exception eEndEdit)
{
System.Windows.Forms.MessageBox.Show(eEndEdit.Mess age);
}

this.objNewDSet_PositionChanged();

}

mehdik76
دوشنبه 12 اردیبهشت 1384, 17:26 عصر
یاشار خان دمت گرم.
واقعا کارت درسته .

دستت درد نکنه از راهنمائیت :flower:
:) :تشویق:

یاشار
دوشنبه 12 اردیبهشت 1384, 17:30 عصر
:موفق: