ลงทะเบียน
ใกล้กัน ช่วยให้คุณแชร์เรื่องราวต่างๆ กับผู้คนมากมาย

รวมคำสั่ง C# ที่ใช้บ่อยสุด สามารถก็อปโค๊ดไปใช้เพื่อเพิ่มความเร็วในการทำงาน

 

 

C# กำหนดให้แสดงเป็นปี ค.ศ. หรือ พ.ศ. 

สำคัญมาก หากต้องการเขียนโปรแกรมให้ทำงานกับวันที่
1. ใส่ Namespace

@using System.Globalization;

 

2. กำหนดให้แสดงปี ค.ศ จะได้ Output: 08/08/2022
string CurDateOnly = DateTime.Now.ToString("MM/dd/yyyy", new CultureInfo("en-EN"));

 

3. กำหนดให้แสดงปี พ.ศ จะได้ Output: 08/08/2565
string CurDateOnly = DateTime.Now.ToString("MM/dd/yyyy", new CultureInfo("th-TH"));

 

Modal สำหรับ ใช้ทำตัวเลื่อนหน้า Pagination

public class ListPaginationData
{
    public int TotalRow { get; set; }
    public int TotalPage { get; set; }
}

 

วิธีระบุ Layout เองผ่าน Controller

return View("index", "_LayoutCustom");

 

การทำ Query Builder ใน C# ที่ดี และง่ายที่สุด

using System.Linq;
using System.Web;
using System.Collections.Specialized;

public string ToQueryString(NameValueCollection nvc)
{
    var array = (
        from key in nvc.AllKeys
        from value in nvc.GetValues(key)
        select string.Format(
        "{0}={1}",
        HttpUtility.UrlEncode(key),
        HttpUtility.UrlEncode(value))
    ).ToArray();
    return string.Join("&", array);
}

 

การทำ Curl Post ใน C# ทดสอบแล้ว 100%

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net;
using System.Text;
using System.IO;

public class DataServices
{
        public string PostData(string filename, string query)
        {
            string jsonData = "";
            var url = "http://localhost/www.tooktee.com/html5/apps/"+ filename;

            var httpRequest = (HttpWebRequest)WebRequest.Create(url);
            httpRequest.Method = "POST";

            httpRequest.ContentType = "application/x-www-form-urlencoded";

            var data = query; // "param1=value1¶m2=value2";

            using (var streamWriter = new StreamWriter(httpRequest.GetRequestStream()))
            {
                streamWriter.Write(data);
            }

            var httpResponse = (HttpWebResponse)httpRequest.GetResponse();
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                jsonData = streamReader.ReadToEnd();
            }

            //Console.WriteLine(httpResponse.StatusCode);

            return jsonData;
        }

}

 

การใช้ ViewData ส่งข้อมูลจากหน้าหลักไปหน้าแยก Html.Partial() สามารถส่งได้หลายค่า

การส่งค่า
Html.Partial( "sample.cshtml",
new ViewDataDictionary 
{ 
    { "Name1", "Value1" }, 
    { "Name2", "Value2" } 
}
)

การรับค่า sample.cshtml
ViewData["Name1"]
ViewData["Name2"]

การใช้ต้องแปลงค่าตามประเภทของข้อมูลที่ส่งผ่าน ViewData เช่น
bool IsUser = false; if(ViewData["IsUser"] !=null) { IsUser = (bool)ViewData["IsUser"]; }

 

โหลดข้อมูล AppSettings จาก Web.config

@System.Configuration.ConfigurationManager.AppSettings["myKey"];

 

กำหนดค่าวันที่เริ่มต้นด้วย C# ใช้กรณีใส่ค่าในตัวแปรที่กำหนดเป็นชนิด DateTime

DateTime.MinValue //Output: 1970-01-01 07:00:00

 

URL Encode ด้วย C# ใช้ตอนทำ Redirect หน้าพร้อม Query ไม่เพี้ยน

รับค่าจาก URL

string url = Request.Url.PathAndQuery;

 

จากนั้นใช้  HttpUtility.UrlEncode

string repath = "/login?repath=" + HttpUtility.UrlEncode( url );

 

การจัดฟอร์แมตเบอร์โทรให้ดูสวยงาม

@String.Format("{0:0##-###-####}", Convert.ToInt32(Model.TelephoneNumber))

  

ฟอร์แมตตัวเลขเป็นสกุลเงินบาทด้วย C#

string.Format("{0:C2}", 1212); //output: ฿1,212

 

ฟอร์แมตตัวเลขใส่คอมม่าด้วย C#

string.Format("{0:n0}", 1212); //output: 1,212

 

การแสดง TEXT ในบล็อก C# เช่น เขียนบล็อก @if ในภายในฟังค์ชั่น Javascript

1. ใช้แท็ก < text > function() < /text> ครอบไว้ เพื่อไม่ให้ C# ตีค่าเป็นตัวแปรแล้วเกิด Error
2. ใช้ @:ตามด้วยค่าทีต้องการเช่น Json หรือ function()  เพื่อไม่ให้ C# ตีค่าเป็นตัวแปรแล้วเกิด Error

 

การรับวันที่ปัจจุบัน C# 

@using System.Globalization;

//Eng
DateTime.Now.ToString("dd/MM/yyyy", new CultureInfo("en-US")); //Output: 08/02/2021

//Thai
DateTime.Now.ToString("dd/MM/yyyy", new CultureInfo("th-TH")); //Output: 08/02/2565

 

C# ตรวจสอบเป็นมือถือ หรือ PC มีประโยชน์ตรงทำให้เว็บรองรับหน้าจอขนาดเล็ก และขนาดใหญ่

Request.Browser.IsMobileDevice

 

C# การรับค่า URL หน้าปัจจุบัน

string query = Request.Url.PathAndQuery
// /mysite/page.aspx?p1=1&p2=2


string url = Request.Url.AbsoluteUri;
// http://localhost:1302/TESTERS/Default6.aspx

 

string path = Request.Url.AbsolutePath;
// /TESTERS/Default6.aspx

 

string host = Request.Url.Host;
// localhost

 

string port = Request.Url.Authority
// localhost:8080

 

string appPath = Request.ApplicationPath
// /mysite

 

string rawUrl = Request.RawUrl
// /mysite/page.aspx?p1=1&p2=2

 

 

 

C# การส่งผ่านค่า Array ไปแสดง View ด้วย List (เทคนิคขั้นสูงที่ได้ใช้บ่อย นิยมใช้กับ API)

สร้าง Models เพื่อรับค่า

public class ContentData
{
public int Id { get; set; }
public string Subject { get; set; }
public string Description { get; set; }
public string DateString { get; set; }
public string ImageUrl { get; set; }
public string LinkTo { get; set; }

}

 

สร้าง Controller เพื่อใส่ค่า (ใช้ JsonConvert ของ Json.NET ติดตั้งผ่าน Nuget ของ Visual Studio)

List contentLocation;
AgentNewDataServices aService = new AgentNewDataServices();
//use API
string contentFilename = "HomeService/__modal_ContentData.php";
string contentData = aService.ReadData(contentFilename);
contentLocation = JsonConvert.DeserializeObject(contentData);
ViewData["contentLocation"] = contentLocation;

 

สร้าง View เพื่อแสดงข้อมูล

@foreach (var item in (List)ViewData["contentLocation"])
{

 

@item.Id

@item.Subject

@item.Description

@item.DateString

@item.ImageUrl

 

}

  

c# ใส่ CSS และ Javascript โดยวางไว้ตรงไหนก็ได้แล้ว c# จะนำมารวมให้อัตโนมัติ

1. โฟลเดอร์ VIEWS เช่น ไฟล์ชื่อ x.cshtml ใส่แท็กนี้ครอบ style ไว้

@section styles{

//css style

@section scripts{

//javascript

}

 

2. โฟลเดอร์ VIEWS/SHARED เช่น ไฟล์ชื่อ Layout.cshtml ใส่แท็ก Render แล้ว C# จะนำ Style และ Javascript ในหน้าอื่น ๆ มารวมกัน

หมายเหตุ: หากคุณใช้ section ในข้อมูล 1 คุณจำเป็นต้องใส่ RenderSection ใน Layout ด้วย เพื่อไม่ให้เกิด Error

 

@RenderSection("styles", required: false) 

@RenderSection("scripts", required: false)

 

C# ดึงหน้าที่ต้องการมารวมกัน (คล้าย Include ของ PHP)

@Html.Partial("~/Views/Project/_ProjectMap.cshtml", Model)

 

ดึง URL จาก Address Bar มาแสดง

@HttpContext.Current.Request.Url.AbsoluteUri

 

ตรวจสอบ Browser เป็น PC หรือ Mobile (มีประโยชน์ตรงทำให้ง่ายต่อการแยกเมนู PC กับมือถือ)

@if (Request.Browser.Platform == "WinNT")
{

//PC Browsers

}
else {

//Mobile Browsers

}

 

อ่านเนื้อหาไฟล์บน Server เดียวกัน

private static string ReadHtmlTemplate( string filename ) {
  string emailtmp = "";
  try {

    string path = FileHelper.GetFileFullPath( HttpContext.Current.Server.MapPath( "/EmailTemplate/" + filename ) );
    using( StreamReader sr = new StreamReader( path ) ) {
      // Read the stream to a string, and write the string to the console.
      emailtmp = sr.ReadToEnd();
      // Console.WriteLine(line);
    }
  } catch ( Exception ex ) {
    DalBase.ExceptEngine.KeepLogOnly( CSystems.ProcessID, ex );
  }
  return emailtmp;
}

 

Session กำหนดเวลาหมดอายุ

https://stackoverflow.com/questions/1205828/how-to-set-session-timeout-in-web-config

 

แสดงทศนิยม 2 ระบบ

Math.Round(Number, 2); 

 

ที่มา

https://stackoverflow.com/questions/257005/how-do-you-round-a-number-to-two-decimal-places-in-c

 

การแสดงผลตัวร่วมกับ HTML ให้เติม @ ด้านหน้า

เช่นทำงานแบบบล็อก

@{

//do

หรือบรรทัดเดียว

 

 

รับค่าพารามิเตอร์จาก URL

Request.Params["login"]

 

กระโดดไปหน้าที่ต้องการ

Response.Redirect("~/HOME/NoResults");

 

ศึกษาคำสั่ง C# ได้จากลิงค์นี้: 

https://www.w3schools.com/cs/default.asp

1. LINQ
2. Optional Parameters
3. Read-only auto-properties
4. Expression-bodied function members
5. Null-conditional operators
6. String interpolation
7. Switch Expression
8. Null-Coalescing Assignment

“My Top 8 Favorite C# Features” 

 

 

รวมคำสั่ง C# ที่ใช้บ่อยสุด

Captcha Challenge
ลองรูปภาพใหม่
Type in the verification code above