سلام
نمونه از Binding (+رفع مشکل فیلدهای Autonumber در بانک Access در حالت Binding)دوست عزیز این ها همه بانک های اطلاعاتیشون SQL server هست درسته؟ چون بنده می خواهم فقط یبا sql server کار کنم...
support.h02.ir/fwlink/?LinkId=1001498227
سلام
نمونه از Binding (+رفع مشکل فیلدهای Autonumber در بانک Access در حالت Binding)دوست عزیز این ها همه بانک های اطلاعاتیشون SQL server هست درسته؟ چون بنده می خواهم فقط یبا sql server کار کنم...
support.h02.ir/fwlink/?LinkId=1001498227
دوست عزیز تشکر...
-------
یک سوال دیگر..
اخوی بنده یک تکس رو از خود مشخصاتش نه با کد نویسی وصل کردم به یک تیبل دیتا بایندینگ و اتصال به یک فیلد....
برای ویرایش اون فیلیدی که تکس داخلش هست و ما وقتی تکس رو عوض کردیم بخواهیم فیلد مرتبط با اون هم عوض بشه چه کدی رو باید بنویسیم؟ البته نه تک تک براشون کد بنویسیم یک فرم هست با مقادیر زیادی ورودی که به بانک اطلاعاتی اکسس توسط همین دیتا تیبل بایندینگ وصله...حالا اگر بخوام با یک دکمه تمام تغییرات رو به ثبت برسونم چه باید بکنم؟
با تشکر
سلام
اگر شما به درستی از Binding استفاده کرده باشید ...
(مثل همین نمونه ساده support.h02.ir/fwlink/?LinkId=1001498227)
برای خواندن از دیتابیس باید متد DataAdapter.Fill را اجرا کنید.
(مثل متد DBLoad در فرم frmMain همین سورس کد نمونه)
و
برای ذخیره داخل دیتابیس باید متد DataAdapter.Update را اجرا کنید.
(مثل متد DBSave در فرم frmMain همین سورس کد.)
=====
یعنی برای ذخیره باید به وسیله همان نوع TypedDataAdapter که Fill کرده اید اینبار Update کنید.
موفق باشید.
سلام
اگر شما به درستی از Binding استفاده کرده باشید ...
(مثل همین نمونه ساده support.h02.ir/fwlink/?LinkId=1001498227)
برای خواندن از دیتابیس باید متد DataAdapter.Fill را اجرا کنید.
(مثل متد DBLoad در فرم frmMain همین سورس کد نمونه)
و
برای ذخیره داخل دیتابیس باید متد DataAdapter.Update را اجرا کنید.
(مثل متد DBSave در فرم frmMain همین سورس کد.)
=====
یعنی برای ذخیره باید به وسیله همان نوع TypedDataAdapter که Fill کرده اید اینبار Update کنید.
موفق باشید.
سلام
چندتا فرم هست بنده می خواهم یک متغییری باشه که تو همه فرمها بتونم ازش استفاده کنم و اگر توسط فرمی تغییرش داد متغییر رو تو فرمهایه دیگه هم مقدارش قابل دسترس باشه و تغییر کرده باشه.....آیا امکانش هست؟یا حتما باید از بانک اطاعاتی استفاده کنم...با تشکر
و همچنین نمی دونم چرا نمی تونم عملیاتی رو نوع Memo اکسس تو ویژال استادیو با خود بیندینگ سورس انجام بدم...آیا راهی هست؟
اکر با ADO.NET مشکل دارید از روش ساده تر LINQ استفاده کنید .
هیچی در بارش نمی دانم! پی دی اف اموزشی چیزی دربارش دارید؟روش ساده تر LINQ استفاده کنید .
و همچنین بانک اطلاعتی با فیلدهای بسیار ساخته شده دیگه نمیشه ، یعنی وقت زیادی میبره بخام عوضش کنم....
سلام
دقت کنید که برای ارسال اطلاعات بین بخشهای مختلف نباید از متغیرهای عمومی استفاده کرد و این کار راه حجل شی گرایی خود را دارد ...چندتا فرم هست بنده می خواهم یک متغییری باشه که تو همه فرمها بتونم ازش استفاده کنم
مثل دیالوگ های Open و Save و... خود داتنت ... دقت کنید ... شما فرم باز میکنید و مواردی را میتوانید در این فرمها تنظیم کنید و نتایج حاصل انتخاب کاربر را بخوانید ولی متغییر عمومی استفاده نمیکنید !!!
متغیر عمومی برای موارد خیلی خاصی مثل ConnectionString و سایر تنظیمات سرتاسری برنامه کاربرد دارد ...
(که تازه اینها هم با تئوری های سرویس گرایی نیازش مرتفع خواهد شد.)
بحرحال با حصول شرایط منطقی برای داشتن متغیرهای عمومی در سطح برنامه میتوانید یک مثل این کدها عمل کنید:
حالا با ارجاعاتی مثل Module1.Field1 و یا Class1.Field2 میتوانید در سرتاسر برنامه به این متغیرهای عمومی دسترسی داشته باشید.کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
نباید مشکلی به وجود آید؟چرا نمی تونم عملیاتی رو نوع Memo اکسس تو ویژال استادیو با خود بیندینگ سورس انجام بدم...آیا راهی هست؟
دقیقاً چه اتفاقی می افتد یا نمی افتند(!)؟
خطا و پیغامی دریافت میکنید؟
سلام و تشکر فراوان
شما فکر کنم کد وی بی برای بنده گزاشتی چون بنده shared پیدا نکردم اما جاش یاد استاتیک افتادم و از اون استفاده کردم جواب داد تشکر.
و اما Memo ارور زیر رو در هنگام وارد کردن دیتابیس به ویژوال استادیو می ده(داخل پنجره دیتا سورس کانفیگوریشن ویزارد)
و موقع ذخیره و به روز رسانی اطلاعات نیز ارور زیر رو می ده:some updating commands could not be generated automatically.The database returned the following error:
Dynamic SQL generation for the updateCommand is not supported against a selectCommand that does not return any key column information
و از کدهای زیر برای آپدیت استفاده می کنم:Update requires a valid UpdateCommand when passed DataRow collection with modified rows.
private void button1_Click(object sender, EventArgs e)
{
table1BindingSource.SuspendBinding();
table1TableAdapter.Update(new_Microsoft_Office_Acc ess_ApplicationDataSet);
}
و اما مشکل بدی که تو پروژم الان بهش بر خوردم!
از اونجا که تو هی جدول تعداد فیلدهام خیلی بالاست . وقتی اطلاعات رو آپدیت کنم ارور زیر رو می ده
کدهای به روز رسانی نیز اینها هستند:Too many fields defined.
می خواستم پروژه رو هر چه زودتر به استاد تحویل بدم ولیکن با این مشکل اساسی گیج شدم! نمی دونم باید وقت بزارم دیتابیس رو تیکه تیکه کنم و بعد بایند کنم....private void Save_Click(object sender, EventArgs e)
{
bindingSource1.SuspendBinding();
damdariTableAdapter1.Update(_mehre_mdfDataSet1);
}
یا انیکه اگه تبدیلش کنم به اس کی ای ، بانک اطلاعتی رو درست میشه؟
متوجه شدم با اس کی ال 2005 میشه اکسس رو تبدیل کرد به اس کی ال 2005 می خواستم برم سی دی های اس کی ال 2005 رو بگیرم ، به این نتیجه رسیدم اول از شما بپرسم....در صورت نبودن راهی برم اینکار رو انجام بدم. البته یک سوال هم برام پیش اومد اس کی ال با تعداد زیاد فیلد تو یه جدول مشکلی نداره؟
سلام
شما فکر کنم کد وی بی برای بنده گزاشتیکد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
متن خطای شما حرفی از MEMO نزده!و اما Memo ارور زیر رو در هنگام وارد کردن دیتابیس به ویژوال استادیو می ده
مشکل شما از دستور SQL-SELECT اولیه و یا کل جدولتان ناشی میشود.
یا جدول بانک اطلاعاتی اصلی شما کلید یا همان primarykey ندارد !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
یا در دستور SQL-SELECT تان فیلد primarykey وجود ندارد.
چند تا فیلد دارید؟Too many fields defined
از Access چند استفاده میکنید؟
اگر تعداد فیلدهای زیادی دارد احتمال زیادی دارد که اصول نرمال سازی اطلاعاتی رعایت نکرده باشید.
=====
مثلا اگر قرار باشد بانک اطلاعاتی نویسنده-کتاب را داشته باشید باید آن را دو جدول کنید.
جدول نویسنده که مشخصات شخصی را شامل میشود و هر نویسنده کدی میگیرد و جدول دوم جدول کتابهای نویسندگاه که کد نویسنده در جدول دوم وجود دارد.
باید روابط یک به چند و چند به چند را به چند جدول بشکنید (مثل هر نویسنده که میتواند بینهایت کتاب داشته باشد)
=====
در یک جدول به صورت معمول نباید فیلدهای خالی زیادی داشته باشید اگر فیلدهای زیادی وجود دارد که فقط برای تعداد کمی از سطرها و موارد این فیلدها پر میشود اینها را میتوانید یک جدول جدا کنید و رابطه یک به یک ایجاد کنید.
و...
و...
=====
راه حل:
- احتمال دارد دیتابیس شما مشکل پیدا کرده باشد.
موتور JET و Access یک محدودیت اسمی 255 تایی دارند (و احتمالاً با کمتر از این تعداد هم به مشکل بر میخورد!) و احتمال ان وجود دارد که فیلدهایی قبلاً داشته اید که حدفشان کرده اید ولی شمارنده تعداد فیلدها کم یا ریست نشده باشد.
بانکتان را با برنامه Access باز کنید و فرمان Compact & Repair را روی ان اجرا کنید.
- قواعد و قوانین نرمال سازی را در ذخیره اطلاعات مد نظر بگیرد و حتماً دیتابیس و بانک اطلاعاتی رابطه ای نرمال شده تهیه کنید.
- دیتابیس را با برنامه Access باز کنید و به نسخه های بالاتر 2003 یا 2007 تبدیل (Convert) کنید.
- کل بانک اطلاعاتی و دیتابیس را به SQL Server منتقل کنید و از این برنامه به جای Access استفاده کنید.
(البته نسخه SQL Server Express همراه VS وجود دارد و نصب هم میشود و همان مشکل شما را رفع میکند و شاید نیازی به خرید CD و برنامه هم نباشد.)
موفق باشید.
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)