//************************************************
//************************************************
public static bool BackUpDataBase_Return_1Successful_0Error() {
try {
var a = new FolderBrowserDialog();
if (a.ShowDialog() == System.Windows.Forms.DialogResult.OK) {
using (var db = new Accounting5Entities()) {
e0.ESetConnectionString(db);
string Path = a.SelectedPath + @"BackUpRayanHesab_" + EGetCurrentDateShamsi_Return_String() + "_" + DateTime.Now.Hour.ToString() + "-" + DateTime.Now.Minute.ToString() + "-" + DateTime.Now.Second.ToString() + "_";
for (Int32 i = 1; i <= Int32.MaxValue; i++) {
if (System.IO.File.Exists(Path + i.ToString() + ".bak") == false) {
Path = Path + i.ToString() + ".bak";
db.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction,@"BACKUP DATABASE Accounting5 TO DISK = '" + Path + "'");
break;
}
}
}
e0.MessageBox_Showinfo(".پشتیبان گیری با موفقیت انجام شد");
} else {
return false;
}
a.Dispose();
} catch (Exception ex) {
e0.MessageBox_Showinfo(ex.Message);
return false;
}
return true;
}
//************************************************
//************************************************
public static bool RestoreDataBase_Return_1Successful_0Error() {
try {
var fake = System.Windows.MessageBox.Show("قبل از بازگردانی ، نخست از بانک اطلاعات نسخه پشتیبان تهیه می گردد","!");
if (BackUpDataBase_Return_1Successful_0Error() == false) {
e0.MessageBox_Showinfo(".عملیات تهیه نسخه پشتیبان و بازگرانی با اشکال مواجه شد/لطفا مجدداً تلاش کنید");
return false;
}
var a = new OpenFileDialog();
a.Filter = "Backup file (*.bak)|*.bak";
a.Multiselect = false;
a.Title = "لطفا فایل بانک اطلاعات مورد نظر را انتخاب نمایید";
if (a.ShowDialog() == System.Windows.Forms.DialogResult.OK) {
string ConnectionString = e0.EdbConnectionString;
ConnectionString = ConnectionString.Replace("Accounting5","master");
var E0DbContext = new System.Data.Entity.DbContext(ConnectionString);
try {//اگر دیتابیس حذف شده است
E0DbContext.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction,@"RESTORE DATABASE Accounting5 FROM DISK = '" + a.FileName + "' WITH REPLACE");
} catch {//اگر دیتابیس از قبل وجود دارد و در حال کار است
E0DbContext.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction,"ALTER DATABASE Accounting5 SET SINGLE_USER WITH ROLLBACK IMMEDIATE" + "n" + @"RESTORE DATABASE Accounting5 FROM DISK = '" + a.FileName + "' WITH REPLACE");
}
e0.MessageBox_Showinfo(".بازگردانی با موفقیت انجام شد");
E0DbContext.Dispose();
} else {
return false;
}
a.Dispose();
} catch (Exception ex) {
e0.MessageBox_Showinfo(ex.Message);
return false;
}
return true;
}
}
//************************************************
//************************************************
public static void E0DataGrid_RefreshWidthAutoSize(ref System.Windows.Controls.DataGrid DG) {
try {
foreach (var item in DG.Columns) {
item.Width = 0;
item.Width = new System.Windows.Controls.DataGridLength(0,System.Windows.Controls.DataGridLengthUnitType.Auto);
}
} catch {
}
}
در این پست یک مثال از پیاده سازی INotifyPropertyChanged و DataGrid.ItemSource و کدهای XAML برای Datagrid و استفاده از ShallowCopy و DeepCopy و استفاده از ImageConverterدر WPF سی شارپ
جالب وجود دارد و نکات آموزشی زیادی می توان از این مثال یاد گرفت
جهت دیدن پست بر روی ادامه مطلب کلیک کنید
فرض کنید می خواهیم زمانی که ALT+K را زدیم کد مورد نظر ما اجرا شود.
مرحله 1 : ایجاد Window.CommandBindings در XAML
<Window.CommandBindings>
<CommandBinding Command="{x:Static local:MainWindow.CmdAltK}" Executed="CmdAltK_Executed"/>
</Window.CommandBindings>
مرحله 2 : در محیط کد نویسی:
MainWindow پنجره ای است که HOtkey در آن اجرا می شود
public partial class MainWindow :Window {
public static readonly RoutedUICommand CmdAltK = new RoutedUICommand("EAltK","EAltK",typeof(MainWindow),new InputGestureCollection() { new KeyGesture(Key.K,ModifierKeys.Alt) });
void CmdAltK_Executed(object sender,ExecutedRoutedEventArgs e) {
//کدهایی که می خواهیم اجرا گردند
}
}
مرحله 3:
مرحله 3 اختیاری است
تا مرحله 2 کار ما انجام شده است اما اگر بخواهیم کدهای CmdAltK_Executed در زمان کلیک کردن یک گزینه از منو نیز اجرا گردد باید
<MenuItem Header="کالا">
<MenuItem Header="_جستجو/ایجاد/حذف/تغییرات کالا" InputGestureText="Alt+K" Command="{x:Static local:MainWindow.CmdAltK}">
</MenuItem>
</MenuItem>
نمونه کد XAML جهت ایجاد منو و زیر منو در wpf سی شارپ :
<Menu DockPanel.Dock="Top" FlowDirection="RightToLeft" Margin="0,0,0,0" FontSize="15" FontFamily="B Mitra" >
<MenuItem Header="حسابداری">
<MenuItem Header="دریافت/پرداخت" InputGestureText="Alt+P" >
<MenuItem.Icon>
<Image Source="MyFilesFinance-Money-Bag-icon.png" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="فاکتور" InputGestureText="Alt+F">
<MenuItem.Icon>
<Image Source="MyFilesFinance-Invoice-icon.png" />
</MenuItem.Icon>
</MenuItem>
<Separator />
</MenuItem>
<MenuItem Header="کالا">
<MenuItem Header="_جستجو/ایجاد/حذف/تغییرات کالا" InputGestureText="Alt+K" >
<MenuItem.Icon>
<Image Source="MyFileschip-icon.png" />
</MenuItem.Icon>
</MenuItem>
</MenuItem>
<MenuItem Header="طرف حساب">
<MenuItem Header="_جستجو/ایجاد/حذف/طرف حساب" InputGestureText="Alt+T">
<MenuItem.Icon>
<Image Source="MyFilesusers-icon.png" />
</MenuItem.Icon>
</MenuItem>
</MenuItem>
<MenuItem Header="گزارش">
<MenuItem Header="_گزارش طرف حساب/صندوق" InputGestureText="Alt+G" >
<MenuItem.Icon>
<Image Source="MyFilesdocument-scroll-icon.png" />
</MenuItem.Icon>
</MenuItem>
</MenuItem>
<MenuItem Header="تهیه نسخه پشتیبان/بازگردانی">
<MenuItem Name="MenuItem_Backup" Header="پشتیبان گیری از پایگاه داده" >
<MenuItem.Icon>
<Image Source="MyFilesDatabase-Backup-icon.png" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Name="MenuItem_Restore" Header="بازگردانی پایگاه داده" >
<MenuItem.Icon>
<Image Source="MyFilesDatabase-Backup-icon.png" />
</MenuItem.Icon>
</MenuItem>
</MenuItem>
</Menu>
با عرض سلام خدمت دوستان
در این پست قصد دارم تحارب خودم را درباره نگهداری ماشین 206 تیپ دو با شما به اشتراک بگذارم
البته این تجربه شخصی من است و ممکنه است تخصصی و کامل نباشد
تجربه 1: در مسافتهای طولانی سرغت ماشین به طور ناگهانی کاهش پیدا می کرد.
علت: خراب پمپ بنزین
نحوه تشخیص :در مسافتهای طولانی بعد از اینکه پمپ بنزین داغ می کرد سرعت و قدرت موتور ناگهان کم می شد یا قدرت موتور کم و زیاد می شد اما بعد از ایست و استراحت ماشین مجددا مشکل برطرف می شد و
رفع مشکل:با تعویض موتور پمپ بنزین مشکل برطرف شد.(من فقط موتور پمپ بنزین را تعویض کردم و قاب پمپ بنزین را تعویض نکردم)(مارک موتور پمپ بنزین جدید فرانتک است که در چند سال اخیر به خوبی کار کرده است)
تجربه 2: بوی بنزین در اتاق ماشین
علت:بعد از تجربه شماره1 ؛ بوی بنزین در اتاق ماشین می پیچید( بخصوص زمانی که باک بنزین ماشین را کامل پر می کردم.)
علت این بود که در زمان تعویض موتور پمپ بنزین ، قاب پمپ بنزین محکم روی باک سوار نشده بود
رفع مشکل:1.قاب پمپ بنزین مجددا باز شد 2.چسب زدن به واشر پمپ بنزین 3.بستن پمپ بنزین بر روی باک ، با استفاده از آجار مخصوص 4.تا زمان خشک شدن چسب به مدت چند روز با باک نیمه پر تردد می کردم.
تجربه 3: در مسافتهای طولانی ، موتور ماشین ریپ می زد و بد کار می کرد.
علت: مشکل از وایر شمعها بود ، بعد از طی مسافت طولانی ، وایر شمع گرم می شد و برق شمع کامل به سر آن منتقل نمی شد (خاصیت عایق بودن وایر شمع کاهش پیدا می کرد و قسمتی از برق شمع به بدنه نشت می کرد)
رفع مشکل:با تعویض وایر شمع جنس هرغوب مشکل برطرف گردید.
تجربه 4: در زمان شتاب گرفتن ، یک لحظه موتور کپ می کرد و بعد درست می شد.(معمولا در دنده 1)(این مشکل 90 درصد مواقع خارج از اینکه ماشین گرم باشد یا سرد باشد پیش می آمد)
علت: مشکل از کوئل بود.
رفع مشکل:با تعویض کوئل مشکل برطرف گردید.
تجربه 5: کم کردن آب رادیاتور
علت: مشکل از واشر سرسیلندر بود. هر از 3 روز قمقمه آب را تا درجه Max پر می کردم اما آب داخل قمقمه دائم کم می شد بعد از چند ماه ، هنگام روشن شدن ماشین دود سفید رنگی از ماشین خارج شد و بعد از مدتی ماشین خاموش شد.
رفع مشکل:با تعویض واشر سرسیلند مشکل برطرف گردید.
تجربه 6: نحوه هواگیری آب رادیاتور
در سایتهای مختلف نحوه هواگیری آب رادیاتور 206 توضیح داده شده است ، اما استفاده از پیچ آب بخاری به نظرم راحتترین روش هواگیری آب رادیاتور است
که در سایتهای مختلف در مورد آن آموزش داده شده ایت.
تجربه 7: کم کردن آب رادیاتور
علت: خراب شدن سر قمقمه آب رادیات.
نحوه تشخیص: در زمان گرم شدن ماشین صدای خالی شدن هوا از کنار قمقمه شنیده می شد و اثرات خروج آب داغ در بدنه قمقمه مشاهده می گردید.
رفع مشکل:با تعویض سر قمقمه آب ، مشکل برطرف شد ، جالب اینحاست که من سر قمقمه L90 را برای ماشین 206 ام گرفتم که بسیار عالی هست و تا حالا به خوبی کار کرده.
تجربه 8: کم شدن شتاب ماشین
علت: کثیف شدن فیلتر بنزین / کثیف شدن انژکتور و دریچه هوا
نحوه تشخیص:مدتی بود که احساس می کردم ماشین اصطلاحا نفس نذدارد و ماشینم نسبت به گذشته ، شتاب کمتری داشت.
رفع مشکل:با تعویض فیلتر بنزین و شستشوی انژکتورها و دریچه هوا مشکل برطرف شد.
تجربه 8: ریپ ناگهانی و بدون قاعده
علت: خرابی شمع
نحوه تشخیص:بدون هیچ زمانبندی و قاعده ای ماشین کمی ریپ می زد.
رفع مشکل:با تعویض شمع مشکل برطرف گردید.
تجربه 8: شمع دو پلاتین بهتر است یا یک پلاتین
شمع دو پلاتین بهتر است زیرا
به تجربه متوجه شدم که در حالت عادی تفاوت محسوسی در شتاب یا سرعت بین شمع دو پلاتین و یک پلاتین وجود ندارد اما
نکته بسیار مهم آن است که شمع یک پلاتین در صورت کثیفی یا خرابی و. به راحتی می تواند شما را در وسط جاده گرفتار کند اما شمع دو پلاتیین حتی در صورتی که یکی از پلاتینها کثیف یا خراب شود ، باز بدون هیچ مشکلی به کار خود ادامه می دهد
رگولاتور ولتاژ چیست و چه کاربردی دارد؟
کلمه رگولاتور(regulator) برگرفته از regulate به معنای تنظیم کردن است.
برای ما خیلی مهم است که ولتاژ متصل به المانهای مدار ثابت باشد ُ تا به آن قطعه یا مدار آسیبی وارد نگردد.
یعنی شما به رگولاتور یک ولتاژ ورودی میدهید و رگولاتور هم به شما ولتاژ خروجی ثابت و پایدار میدهد.
نکته مهم این است که در واقعیت ولتاژ خروجی رگولاتورهای ولتاژ نسبت به ورودی اندکی تغییر می کند و میزان این تغییر به مقدار Line Regulation Max ارتباط دارد
هر چه مقدار Line Regulation Max کمتر باشد نوسان ولتاژ خروجی رگولاتور نسبت به تغییرات ولتاژ ورودی کمتر است.
در دیتاشیت(کاتالوگ) بعضی از رگولاتورهای عبارت Line Regulation نوشته شده است
عبارت Line Regulation به چه معنی است؟
در ادامه با ذکر یک مثال مفهوم Line Regulation را نشان خواهیم داد:
درباره این سایت