سلام

نوشته شده توسط:
booysusa
دیتابیس را بصورت اتچ شده میزارید کنار برنامه، خاصیت این کار چی هست...
گمانم منظورتان افزودن فایل دیتابیس به پروژه و Solution است؟!
قرار دادن فایل های اصلی برنامه به صورت دستی در مسیر bin و obj خیلی منطقی نیست.
این دو پوشه ، خروجی پروژه هستند و با حذف آنها نباید مشکلی در پروژه رخ دهد.
نباید در خروجی کار، یک فایل منبع (ورودی) را ذخیره و نگه داری کرد.
شما اگر سورس هایی از منابع معتبر دانلود کنید میبینید که فاقد این دو پوشه هستند.
پروژه شما باید طوری باشد که در هر لحظه بتوان این دو پوشه را حذف و Clean کرد و با Build بعدی محتویات ساخته شود.
همین الان در فایل zip پروژه ای که شما قرار دادید ، فقط یک sdf آن هم در مسیر bin\Debug وجود داشت،
اگر شیوه کامپایل را در Release قرار دهید چه رخ میدهد؟
برنامه بدلیل نبود sdf خطا خواهد داد.
شاید بگویید "خوب! یک کپی هم در bin\Release قرار میدهیم"
ولی اگر من جدول یا ستونی را کم و زیاد کنم ، چه میشود؟ باید یادم باشد و دستی فایل هر دو محل را بروز کنم...
اگر شیوه های
(Config) های دیگری اضافه کنم چه؟
اگر پروژه را publish بگیرم چه؟
در همه این موارد باید یادم باشد و دستی فایل sdf را کپی کنم.
وجود فایلهایی مانند sdf درون پروژه کمک میکند بتوانید از طریق پنجره کمکی Properties رفتار برنامه را در زمان کامپایل با این فایلها مشخص کنید.
ضمن اینکه اگر افزونه های مناسب در VS نصب باشد با دبل کلیک فایلها میتوانید Schema کلی آنها را به راحتی مشاهده یا ویرایش کنید.
==============
همچنین از جهت دیگر dll های مورد استفاده پروژه تان هم باید داخل پوشه های برنامه باشد.
پوشه packages بسیار برای این کار مناسب و استاندارد است ولی نباید dll های مورد استفاده تان از مسیرهای خارجی باشد.
الان کتابخانه FarsiMessageBox که استفاده کرده اید از مسیر K:\ComponenntHa\FarsiMessageBoxDLL\FarsiMessageBox.dll است.
یا SqlServerCe از مسیر بسیار بدتری آمده!
این قابلیت صحیح بازشدن و کامپایل پروژه تان را در رایانه های مختلف تحت تاثیر قرار میدهد.
اگر هم الان پروژه تان در رایانه دیگر کار میکند بدلیل آن است که VS خطای فوق را مخفی میکند ، چون dll مذکور را در bin\Debug هم پیدا میکند ولی چند کلیک ساده ، خیلی راحت میتواند مشکل ساز شود!

نوشته شده توسط:
booysusa
و اینکه من چطور اینکارو کنم؟
روش های زیادی وجود دارد...
میتوانید فایل را در MyComputer با راست کلیک، کپی کنید و درون VSو با راست کلیک روی پروژه Paste کنید.
اینطوری هم فایل به محل پروژه کپی میشود و هم در csproj و Solution اضافه میشود.

نوشته شده توسط:
booysusa
برای سوال دومم این رو نوشتم و درست شد
میبخشید، دیر جواب میدهم، فقط کمی شب ها وقت خالی دارم و آن هم باید چندین کار را انجام دهم.

نوشته شده توسط:
booysusa
img.Save(Sfd.FileName)
در مورد کدتان هم، بله تقریبا درست است ولی ایراد کوچکی دارد که شاید اگر پروژه تان دانشگاهی باشد ، چندان مهم نباشد و کسی هم متوجه نشود !
مشکل آنجاست که کد جاری به پسوند و نوع تصویر رسیدگی نمیکند.
یعنی درست است که در ظاهر اجازه میدهید فایل jpg یا gif یا bmp و png توسط کاربر انتخاب شود و فایل را هم با همان نام و پسوند دلخواه کاربر ذخیره میکنید ولی در واقع هیچ توجهی به فرمت و پسوند دلخواه کاربر نمیشود.
مانند این است که یک فایل jpg را در MyComputer بروید و Rename کنید و پسوندش را gif قرار دهید.
فایل شما در ظاهر gif میشود و Viewerها هم خودکار متوجه میشوند فایل واقعا jpg است و درست نمایش اش میدهند ولی واقعا این کار شما فایل را gif نمیکند.
شبیه آن است که یک فایل docx برنامه Word را فقط با Rename بخواهید pdf کنید.
این فقط نام فایل است و ماهیت آن را تغییر نمیدهد.
اگر میخواهید واقعا فایل خروجی را به فرمت دلخواه کاربر تبدیل و ذخیره کنید باید خودتان پسوند فایل را پردازش کنید، چیزی شبیه این کد:
if (Sfd.ShowDialog() != DialogResult.OK) return;
switch (System.IO.Path.GetExtension(Sfd.FileName)?.ToLower())
{
case ".bmp":
img.Save(Sfd.FileName, System.Drawing.Imaging.ImageFormat.Bmp ) ;
break;
case ".gif":
img.Save(Sfd.FileName, System.Drawing.Imaging.ImageFormat.Gif ) ;
break;
case ".jpg":
case ".jpeg":
img.Save(Sfd.FileName, System.Drawing.Imaging.ImageFormat.Jpeg ) ;
break;
case ".png":
img.Save(Sfd.FileName, System.Drawing.Imaging.ImageFormat.Png ) ;
break;
case ".tif":
case ".tiff":
img.Save(Sfd.FileName, System.Drawing.Imaging.ImageFormat.Tiff ) ;
break;
case ".wmf":
img.Save(Sfd.FileName, System.Drawing.Imaging.ImageFormat.Wmf ) ;
break;
default :
System.Windows.Forms.MessageBox.Show(this, "Not Supported!" ) ;
break;
}
موفق باشید و شب خوش.