تصویر ثابت

پایگاه رسمی مهندس محسن اشکبوس

کارشناس ارشد طراحی سامانه های نرم افزاری تحت وب و شیرپوینت

پایگاه رسمی مهندس محسن اشکبوس

کارشناس ارشد طراحی سامانه های نرم افزاری تحت وب و شیرپوینت

آخرین نظرات

۱۱ مطلب با موضوع «برنامه نویسی :: برنامه نویسی C#.net» ثبت شده است

حل مشکل : Assembly generation failed - Referenced assembly does not have a strong name

اشکبوس محسن | سه شنبه, ۱۴ شهریور ۱۳۹۶، ۰۳:۴۰ ب.ظ

سلام برای حل این مشکل یک راه بسیار ساده وجود دارد و آن هم این است که مسیر ذیل را در پروژتون دنبال کنید : 

Project Properties -> Signing


حال تیک گزینه Sign the assembly checkbox  را بردارید و پروژتون رو Build کنید.

  • اشکبوس محسن

حل مشکل کارکتر عربی در رشته ورودی در C#.net

اشکبوس محسن | سه شنبه, ۲۱ ارديبهشت ۱۳۹۵، ۰۴:۰۷ ب.ظ

شاید برخی اوقات مثل بنده به این مشکل خورده باشید که نمی تونید در یک رشته جستجو فارسی کنید چون برخی کلمات عربی هستند برای رفع این مشکل باید کارکتر عربی را به کارکتر معادل فارسی آن تبدیل کنید و برای اینکار از کد ذیل می توانید استفاده کنید  :

به عنوان مثال اگر رشته ی inputStr حاوی "رسیدگی نشده" باشد پس از اجرای تکه کد ذیل معادل با "رسیدگی نشده" خواهد گردید.

inputStr.Replace('ی', 'ی')
  • اشکبوس محسن

حل مشکل خالی بودن session در generic handler

اشکبوس محسن | شنبه, ۱۸ ارديبهشت ۱۳۹۵، ۰۲:۴۹ ب.ظ
بسیار ساده می توانید این مشکل را حل کنید تنها کافی است که handler مربوطه از interface  ذیل implement شود : 

 System.Web.SessionState.IRequiresSessionState
به عنوان مثال : 
public class Handler : IHttpHandler, System.Web.SessionState.IRequiresSessionState 
{   
  public void ProcessRequest(HttpContext context)  
  {      
    context.Session["StackOverflow"] = "overflowing";      
    context.Response.Redirect("~/AnotherPage.aspx");      
  }

}

  • اشکبوس محسن

لیست استاتیک در C#

اشکبوس محسن | شنبه, ۱۸ ارديبهشت ۱۳۹۵، ۰۲:۰۳ ب.ظ
ممکن است بخواهید برخی اوقات لیستی داشته باشید که مقدار پارمترها آن در طول برنامه از بین نرود برای اینکار می توانید از مفهوم لیست استاتیک بهره ببرید ابتدا کلاس ListTest را به صورت ذیل تعریف می کنید : 

using System;
using System.Collections.Generic;

static class ListTest
{
    static List<string> _list; // Static List instance

    static ListTest()
    {
	//
	// Allocate the list.
	//
	_list = new List<string>();
    }

    public static void Record(string value)
    {
	//
	// Record this value in the list.
	//
	_list.Add(value);
    }

    public static void Display()
    {
	//
	// Write out the results.
	//
	foreach (var value in _list)
	{
	    Console.WriteLine(value);
	}
    }
}
سپس برای دستیابی به عناصر لیست به صورت ذیل عمل خواهید کرد : 
using System;

class Program
{
    static void Main()
    {
	//
	// Use the static List anywhere.
	//
	ListTest.Record("Dot");
	ListTest.Record("Perls");
	ListTest.Record("Net");
	ListTest.Display();
    }
}

و خروجی شما خواهد بود : 
Dot
Perls
Net

  • اشکبوس محسن

تبدیل زمان از ثانیه به چندین روش در سی شارپ

اشکبوس محسن | سه شنبه, ۷ ارديبهشت ۱۳۹۵، ۱۱:۳۱ ق.ظ

What is the best way to convert seconds into (Hour:Minutes:Seconds:Milliseconds) time?

For .Net <= 4.0 Use the TimeSpan class.

TimeSpan t = TimeSpan.FromSeconds( secs );

string answer = string.Format("{0:D2}h:{1:D2}m:{2:D2}s:{3:D3}ms", 
                t.Hours, 
                t.Minutes, 
                t.Seconds, 
                t.Milliseconds);

(As noted by Inder Kumar Rathore) For .NET > 4.0 you can use

TimeSpan time = TimeSpan.FromSeconds(seconds);

//here backslash is must to tell that colon is
//not the part of format, it just a character that we want in output
string str = time .ToString(@"hh\:mm\:ss\:fff");

How to convert total seconds value to string in 'hours minutes seconds' format [duplicate]

var ts = TimeSpan.FromSeconds(totalsecond);

MessageBox.Show(string.Format("H: {0} M:{1} S:{2}", ts.Hours, ts.Minutes, ts.Seconds));

how to convert seconds in min:sec format

int totalSeconds = 222;
int seconds = totalSeconds % 60;
int minutes = totalSeconds / 60;
string time = minutes + ":" + seconds;
  • اشکبوس محسن

سورس برنامه تحلیلگر لغوی کامپایلر(Lexical Analyzer)

اشکبوس محسن | سه شنبه, ۱۵ دی ۱۳۹۴، ۰۹:۳۱ ق.ظ

نام پروژه : طراحی و توسعه فاز لغوی کامپایلر(Lexical Analyzer)
درباره : در این پروژه سعی کرده ام که فاز تحلیل لغوی کامپایلر را شبیه سازی کنم.کلیت نرم افزار به این صورت است که یک فایل متنی(txt.*) را از ورودی دریافت می کند(که یک کد به زبان C می باشد) و توکن های آنرا با توجه به الگوهای توکن ها به شما نشان میدهد.
حجم : 92 کیلوبایت
منبع : http://mohsenashkboos.blog.ir
زبان برنامه سازی : C#.net
برنامه نویس : محسن اشکبوس

دانلود : فایل اجرائی برنامه جهت نمایش
نکته مهم : جهت اجرا شدن برنامه بایستی dotNetFramework 4.5 بر روی سیستم شما نصب باشد.در صورتی که بر روی سیستم شما ویژوال استادیو 2013 نصب باشد کافی است.

توجه : این سورس کد توسط دانشجویان به اساتید ارائه شده و مشکل خاصی تا کنون گزارش نشده در صورت مشکل به ما اطلاع دهید تا در نسخه های بعدی مشکالت رفع گردد.
جهت انتشار و کمک به دانشجویان جه فراگیری علم نه کپی کردن آن از تاریخ 1394/10/15 به بعد نرم افزار به صورت رایگان در اختیار دوستان قرار می گیرد و می توانید از لینک ذیل آنرا دانلود بفرمایید : 

  • اشکبوس محسن

Entity FrameWork Power Tools

اشکبوس محسن | دوشنبه, ۱۶ آذر ۱۳۹۴، ۰۹:۲۹ ق.ظ
از این ابزار من برای ساختن مدل شی گرایی خودم از روی Entity Model استفاده می کنم.برای نصب این ابزار ابتدا آنرا از اینجا دانلود کنید ، Visual Studio را بسته و آنرا نصب کنید.حال فقط کافی است بر روی مدل خود راست کلیک کرده مطابق شکل ذیل  :

Visual Studio Context Menu
حال مدل شما برای کار به روش Code First آمده شده است.
  • اشکبوس محسن

Solution:The data source does not support server-side data paging with GridView

اشکبوس محسن | چهارشنبه, ۱۷ دی ۱۳۹۳، ۰۹:۲۲ ق.ظ
You can’t use an IQueryable object to data bind to a GridView and still use Paging and Sorting. You must return a List to the GridView using the ToList() method
For Example  :

        private void LoadData()
        {
            ProductInventory[] lines = GetData();
            grdRows.DataSource = lines.Where(t => t.ProductID.StartsWith(tbSearch.Text)).ToList();
            grdRows.DataBind();
        }

Ref : http://www.codeproject.com/Articles/824002/Solution-The-data-source-does-not-support-server-s




  • اشکبوس محسن

صفحه بندی کردن Datalist در ASP.net

اشکبوس محسن | جمعه, ۱۸ مهر ۱۳۹۳، ۱۰:۴۰ ب.ظ
در مد Design View داریم :
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <table width="900px" align="center">
    <tr>
    <td>
    <asp:DataList ID="DataList1" runat="server">
    <HeaderTemplate>
    <table width="900px">
    <tr style="background-color:Blue;height:30px;color:White;font-size:14px">
    <td width="150px">Ename</td>
    <td width="150px">Basic</td>
    <td width="150px">Dept No.</td>
    <td width="150px">Job</td>
    <td width="150px">Communication</td>
    </tr> 
    </table>
    </HeaderTemplate>
    <ItemTemplate>
    <table width="900px">
    <tr>
    <td width="150px"><%# Eval("ename")%></td>
    <td width="150px"><%# Eval("basic")%></td>
    <td width="150px"><%# Eval("deptno")%></td>
    <td width="150px"><%# Eval("job")%></td>
    <td width="150px"><%# Eval("comm")%></td>
    </tr>
    </table>
    </ItemTemplate>
    </asp:DataList>
    </td>
    </tr>
    <tr>
    <td>
    <table id="tblPaging" runat="server">
    <tr>
    <td style="padding-right: 7px" valign="top">
    <asp:LinkButton ID="lnkbtnPrevious" runat="server" OnClick="lnkbtnPrevious_Click">Previous</asp:LinkButton>
    </td>
    <td valign="top">
    <asp:DataList ID="dlPaging" runat="server" OnItemCommand="dlPaging_ItemCommand" OnItemDataBound="dlPaging_ItemDataBound"
    RepeatDirection="Horizontal">
    <ItemTemplate>
    <asp:LinkButton ID="lnkbtnPaging" runat="server" CommandArgument='<%# Eval("PageIndex") %>'
    CommandName="lnkbtnPaging" Text='<%# Eval("PageText") %>'></asp:LinkButton>
    </ItemTemplate>
    </asp:DataList>
    </td>
    <td style="padding-left: 7px" valign="top">
    <asp:LinkButton ID="lnkbtnNext" runat="server" OnClick="lnkbtnNext_Click">Next</asp:LinkButton>
    </td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    </div>
    </form>
</body>
</html>
و در مد Code View  :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

public partial class _Default : System.Web.UI.Page
{
    PagedDataSource pds = new PagedDataSource();
    protected void Page_Load(object sender, EventArgs e)
    {
        bindDataList();

    }

    protected void lnkbtnPrevious_Click(object sender, EventArgs e)
    {
        CurrentPage -= 1;
        bindDataList();
    }
    protected void lnkbtnNext_Click(object sender, EventArgs e)
    {
        CurrentPage += 1;
        bindDataList();
    }
    protected void dlPaging_ItemCommand(object source, DataListCommandEventArgs e)
    {
        if (e.CommandName.Equals("lnkbtnPaging"))
        {
            CurrentPage = Convert.ToInt16(e.CommandArgument.ToString());
            bindDataList();
        }
    }
    protected void dlPaging_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        LinkButton lnkbtnPage = (LinkButton)e.Item.FindControl("lnkbtnPaging");
        if (lnkbtnPage.CommandArgument.ToString() == CurrentPage.ToString())
        {
            lnkbtnPage.Enabled = false;
            lnkbtnPage.Font.Bold = true;
        }
    }

    public int CurrentPage
    {
        get
        {
            if (this.ViewState["CurrentPage"] == null)
                return 0;
            else
                return Convert.ToInt16(this.ViewState["CurrentPage"].ToString());
        }
        set
        {
            this.ViewState["CurrentPage"] = value;
        }
    }
    private void doPaging()
    {
        DataTable dt = new DataTable();
        dt.Columns.Add("PageIndex");
        dt.Columns.Add("PageText");
        for (int i = 0; i < pds.PageCount; i++)
        {
            DataRow dr = dt.NewRow();
            dr[0] = i;
            dr[1] = i + 1;
            dt.Rows.Add(dr);
        }
        dlPaging.DataSource = dt;
        dlPaging.DataBind();
    }

    void bindDataList()
    {
        string connn = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
        SqlConnection con = new SqlConnection(connn);
        con.Open();
        string str = "select empno,ename,basic,deptno,job,comm from emp";
        SqlCommand cmd = new SqlCommand(str, con);
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        da.Fill(ds);
        DataList1.DataSource = ds;
        DataList1.DataBind();
        pds.DataSource = ds.Tables[0].DefaultView;
        pds.AllowPaging = true;
      //to set the paging change the number 3 to your desired value
        pds.PageSize = 3;
        pds.CurrentPageIndex = CurrentPage;
        lnkbtnNext.Enabled = !pds.IsLastPage;
        lnkbtnPrevious.Enabled = !pds.IsFirstPage;
        DataList1.DataSource = pds;
        DataList1.DataBind();
        doPaging();
        con.Close();
    }
}
  • اشکبوس محسن

الگوریتم مرتب سازی QuickSort

اشکبوس محسن | چهارشنبه, ۲ بهمن ۱۳۹۲، ۰۵:۱۳ ب.ظ

QuickSort یک الگوریتم تقسیم و غلبه است .

این الگوریتم بر اساس الگوریتم پارتیشن کار می کند و یک عنصر محوری (Pivot) که معمولاً اولین عنصر از چپ است را در نظر می گیرد و طوری عناصر را به کمک الگوریتم پارتیشن مرتب می کند که در هر گذر تمامی عناصر سمت چپ عنصر محوری از آن کوچکتر و تمامی عناصر سمت راست عنصر محوری از آن بزرگتر هستند.و الگوریتم به صورت بازگشتی  این روند را ادامه می دهد تا کلیه عناصر مرتب شوند.

مرتبه زمانی این الگوریتم در بدترین حالت :  

 O(N^2)                                                           

و در بهترین حالت :

 O(nlogn)                                                         

کدی(کد C#) که در اینجا قرار میدهم  عناصری آرایه ای از جنس String را مرتب می کند.

 

 

کد :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Quicksort
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create an unsorted array of string elements
            string[] unsorted = { "z","e","x","c","m","q","a"};
 
            // Print the unsorted array
            for (int i = 0; i < unsorted.Length; i++)
            {
                Console.Write(unsorted[i] + " ");
            }
 
            Console.WriteLine();
 
            // Sort the array
            Quicksort(unsorted, 0, unsorted.Length - 1);
 
            // Print the sorted array
            for (int i = 0; i < unsorted.Length; i++)
            {
                Console.Write(unsorted[i] + " ");
            }
 
            Console.WriteLine();
 
            Console.ReadLine();
        }
 
        public static void Quicksort(IComparable[] elements, int left, int right)
        {
            int i = left, j = right;
            IComparable pivot = elements[(left + right) / 2];
 
            while (i <= j)
            {
                while (elements[i].CompareTo(pivot) < 0)
                {
                    i++;
                }
 
                while (elements[j].CompareTo(pivot) > 0)
                {
                    j--;
                }
 
                if (i <= j)
                {
                    // Swap
                    IComparable tmp = elements[i];
                    elements[i] = elements[j];
                    elements[j] = tmp;
 
                    i++;
                    j--;
                }
            }
 
            // Recursive calls
            if (left < j)
            {
                Quicksort(elements, left, j);
            }
 
            if (i < right)
            {
                Quicksort(elements, i, right);
            }
        }
 
    }
}

 

 

 

 

 

خروجی

 

z e x c m q a
a c e m q x z
  • اشکبوس محسن