سرشار از زندگی

طبقه بندی موضوعی

۳ مطلب با کلمه‌ی کلیدی «#C» ثبت شده است

See english version here

بسته ی SignalR راهکاری مناسب برای پیاده سازی انتشار غیر همزمان در #C به حساب می یاد. حتما دیدید بعضی سایت ها بدون چک کردن منظم در پس زمینه (polling) هرگونه تغییر رو به صورت آنی نشون میدن!

اگر شما هم دوست دارید از این امکان زیبا بهره ببرید می تونید از SignalR استفاده کنید!

خب برای شروع باید این بسته رو به پروژه تون اضافه کنید؛ برای این کار اگر از 4.5 NET. استفاده می کنید، می تونید با Nuget دریافتش کنید (SignalR 2).

اما اگر از 4 NET. استفاده می کنید باید در بخش Package Manager Console، دستور زیر رو وارد کنید(SignalR 1.1.3):

Install-Package Microsoft.AspNet.SignalR -Version 1.1.3
بعد از نصب، پوشه ی Scripts توی پروژه تون ایجاد میشه که توش چند تا فایل هست!
حالا باید فایل Global.asax رو به پروژه تون اضافه کنید تا در شروع کار برنامه، SignalR فراخونی بشه!


۲ نظر موافقین ۱ مخالفین ۰ ۰۸ مرداد ۹۳ ، ۱۶:۱۶
mjrh

حالا رسیدیم به بخش جالبش! بخش اول را اینجا و بخش دوم را اینجا ببینید.

حالا برای دسترسی به داده های پایگاه داده در #C، باید به پایگاه داده متصل بشیم، که باید از همون اسمی که گفتم دلخواهه استفاده کنیم!

اضافه کردن یک سطر به جدول:

using (var context = new MyDBEntities())
{
User me = new User()
{
Username="majid",
Password="xyz"
};
context.User.AddObject(me);
context.SaveChanges();
}

این کد me را که از نوع  User است، به جدول User اضافه می کنه.

نکتش اینجاست که نیازی نیست مقدار Id رو تعیین کنید! این مقدار به طور خودکار و به صورت افزایشی تعیین میشه! (طبق بخش اول).

همچنین بعد از هر کاری که روی جدول تغییر ایجاد می کنه، برای ذخیره ی تغییرات باید از متد SaveChanges استفاده کنید!

۶ نظر موافقین ۰ مخالفین ۰ ۰۸ فروردين ۹۳ ، ۱۳:۱۳
mjrh

برای تولید فایل excel از DataTable می توان از EPPlus استفاده کرد.

برای شروع EPPlus را از اینجا دریافت کنید و آن را از حالت فشرده خارج کنید.

سپس در Visual Studio در منوی PROJECT گزینه ی Add Reference را کلیک کنید تا پنجره ای مانند شکل زیر ظاهر شود:


سپس با استفاده از دکمه ی Browse ، فایل دریافتی (EPPlus.dll) را انتخاب کنید.

بعد کدی مانند کد زیر را در فایل (code behind (.aspx.cs یا (generic handler (.ashx.cs قرار دهید:

using OfficeOpenXml;
using OfficeOpenXml.Table; //adding library

DataTable dt=GetDT(); //get your DataTable from some method or...
using (ExcelPackage pck = new ExcelPackage())
{
if (dt.Columns.Count > 0)
{
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("addYourSubjectHere");
ws.Cells["A1"].LoadFromDataTable(dt, true, TableStyles.Medium6);
ws.Cells.AutoFitColumns();
using (ExcelRange rng = ws.Cells)
{
rng.Style.Font.SetFromFont(new Font("Tahoma", 10));
}
pck.Workbook.Properties.Title = "yourTitle";
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment; filename=Invoice.xlsx");
Response.BinaryWrite(pck.GetAsByteArray());
Response.End();
}
}
در صورتی که از این کد در generic handler استفاده می کنید، نیازی به 
Response.End();
 در انتهای کد نیست.
۰ نظر موافقین ۰ مخالفین ۰ ۲۴ بهمن ۹۲ ، ۱۵:۳۲
mjrh