Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > C# ASP.NET Core MVC ช่วยดูหน่อยครับว่าใช้ค่า ConnectionStrings ถูกไม๊ ครับ



 

C# ASP.NET Core MVC ช่วยดูหน่อยครับว่าใช้ค่า ConnectionStrings ถูกไม๊ ครับ

 



Topic : 135938



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook



สืบเนื่องจากหน้านี้ครับ

https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/working-with-sql?view=aspnetcore-5.0&tabs=visual-studio

ผมใช้ ConnectionStrings แบบนี้

Code (C#)
"ConnectionStrings": {
    "MvcMovieContext": "Data Source=C:\\Users\\ttt\\AppData\\Local\\Microsoft\\Microsoft SQL Server Local DB\\Instances\\MSSQLLocalDB;Initial Catalog=MvcMovieContext-1;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False"
  }


รันแล้วไม่มีการเพิ่ม ข้อมูลให้ครับ
11

ใน SeedData ก็ไม่รันโค้ด ที่ดีบัก ครับ
13

ทั้งๆที่ใน Main(string[] args) ก็ใส่โค้ด SeedData ไปแล้ว ครับ

45

ปล.จากที่ลอง create new ก็ create ได้ นะครับ
แต่ข้อมูลที่ create ก็ยังไม่เข้าไปที่ ฐานข้อมูลอยู่ดี

55



Tag : .NET









ประวัติการแก้ไข
2021-02-23 21:28:01
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2021-02-23 20:05:53 By : lamaka.tor View : 3669 Reply : 60
 

 
น่าจะ connect ไม่ผ่านนะครับ ลองดู Error ที่ logger ดูครับ
ปกติ connect mssql จะไม่ได้อ้างแบบนี้นะครับ "c:\\"
ส่วนมากจะ Server=(localdb) (Server= localdb ที่รันอยู่ก็คือเครื่องเรา ถ้าเครื่องอื่นก็เปลี่ยนจาก localdb เป็น IP)






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-24 10:40:31 By : บัญดิษฐ
 


 
จากรูปภาพ มันเขียนลงดาต้าเบสได้แล้ว ล้าน %
ร้อยเอาขี้หมากองเดียว มันอยู่ที่ไหนล่ะ ดาด้าเบสก้อนนั้น?

อยู่ในรูปที่คุณโพสต์มานั่นแหละ

ถ้าจะเอาให้ชัดไฟล์ appsettings.json
Code (C#)
{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=FuckerYourDB;Trusted_Connection=True;MultipleActiveResultSets=true"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-24 13:35:43 By : ผ่านมา
 

 

No. 3



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



สถานะออฟไลน์


ผมก็ไม่เคย กำหนด server ด้วย drive เหมือนกัน
55555 คุณ Tor ก็เขียน win app มาเยอะแล้ว มาตกม้าตาย เพราะ connection string ซะแล้ว
แต่ก็ธรรมดา บางทีผมก็ลืมเหมือนกัน 555
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-24 14:38:23 By : Chaidhanan
 


 

No. 4



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ขอบคุณทุกๆ ท่าน ครับ
พอหลังจากที่ ลบโปรเจค สร้างใหม่ ลบใหม่สร้างใหม่ เจอปัญหาอื่นๆ อีก ลบใหม่ สร้างใหม่ ไปเรื่อย
จนตอนนี้ก้เริ่มคุ้นกับมันนิดแล้วแล้วครับ

ตอนนี้ก็ใช้งานได้ปกติ

ถ้าให้ผมเดาแบบบ้านๆ คือ

เราสามารถ สร้าง table และ ยัด ข้อมูลลงใน database ได้เลย โดยไม่ต้องไปสร้าง table ใน database
จาก

Update-Database

https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/adding-model?view=aspnetcore-5.0&tabs=visual-studio#initial-migration

หลังจากลองเล่นซักพัก ก็เกิดคำถามอีกครับ

1. ในกรณีที่เราทำเป็น web services ใช้ในวงแลน เราจะใช้ Database จาก sql ได้เลย โดยอ้างอิง IP หรือ ชื่อเครื่องได้เลย เหมือนกับ winApp หรือปล่าว ครับ

2. ถ้าหาก เรามี หลายๆตาราง แล้วอยากทำ Relationship จากการที่เราสร้างคลาสไว้เยอะๆ
เช่น

ตาราง Movie มี
ID
Title
ReleaseDate
GenreID
Price

ตาราง Genre มี
ID
Genre

ตาราง WatchMan มี
ID
MovieID
DateWatch

ในกรณีที่ไม่มี ตาราง ใน ฐานข้อมูล
ถ้าเราคิดจะสร้างมัน และ ทำ Relationship ผ่านโค้ด
เราสามารถ ทยอย สร้างเรื่อยๆ แล้ว สั่ง Update-Database ใหม่ เรื่อยๆ หรือ ต้องสร้างทีเดียว ออกแบบทีเดียวจบ
แล้วในโค้ด เราจะทำ Relationship ได้ยังไง ครับ

ปล.อาจจะ มีคำถามมาอีกเรื่อยๆ จนกว่าจะพอรู้เรื่องบ้าง อย่าเพิ่งรำคาญกันเน้อ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-24 15:03:49 By : lamaka.tor
 


 

No. 5



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

อ้าวลืมถาม

3. ในกรณที่เราสร้างฐานข้อมูล เรียบร้อย ดันอยากแก้ เช่นเดิม Genre มันเป็น Genre/string แต่อยากแก้เป็น GenreID/int
เราสามารถแก้ที่ คลาส Movie ใน Models แล้ว Update-Database จบเลยได้ไม๊ ครับ
หรือต้องตามแก้ทุกอย่างที่เกี่ยวกับมัน ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-24 15:07:24 By : lamaka.tor
 


 
คำถามนี้คิดถึง ท่านหน้าฮีเลย

ตอบความคิดเห็นที่ : 4 เขียนโดย : lamaka.tor เมื่อวันที่ 2021-02-24 15:03:49
รายละเอียดของการตอบ ::
1. ในกรณีที่เราทำเป็น web services ใช้ในวงแลน เราจะใช้ Database จาก sql ได้เลย โดยอ้างอิง IP หรือ ชื่อเครื่องได้เลย เหมือนกับ winApp หรือปล่าว ครับ
--ได้ ไม่ว่าจะเป็น IP หรือไม่เพราะอย่างไง มันก็รันที่ server ที่เป็น web services ยกเว้นมี server database แยกต่างหาก
ศึกษาเพิ่มเติมเรื่อง web service ครับ ถ้าเริ่มเขียนเว็บควรใช้ธรรมดาไปก่อนได้ดีกว่าครับ เพราะการทำงานของเว็บมันไม่ได้ส่ง
การเชื่อมต่อไปให้ client มันส่งไปในรูปแบบ html เพื่อไปแสดงผล

2. ถ้าหาก เรามี หลายๆตาราง แล้วอยากทำ Relationship จากการที่เราสร้างคลาสไว้เยอะๆ
เช่น

--เป็นคำถามที่ดี ทำได้แต่ไม่แนะนำ เดียวจะหาเทเบิลไม่เจอ 55(กับดักตัวเอง)


3. ในกรณที่เราสร้างฐานข้อมูล เรียบร้อย ดันอยากแก้ เช่นเดิม Genre มันเป็น Genre/string แต่อยากแก้เป็น GenreID/int
เราสามารถแก้ที่ คลาส Movie ใน Models แล้ว Update-Database จบเลยได้ไม๊ ครับ
หรือต้องตามแก้ทุกอย่างที่เกี่ยวกับมัน

--มีผลกับส่วนที่ใช้งานครับ models กับ data base ถึงจะแก้ตาม แต่ view หรือ code ส่วนที่นำไปใช้ก็ต้องแก้ครับ



ลองทำโปรเจ็คเล็กๆก่อน แบบ connect database ด้วยนะ แล้ว Deploy ขึ้น iis ดูครับ
ปัญหาเรื่องเขียนไม่เท่าไร แต่ปัญหาเรื่อง iis ทำให้ผมต้องหนีไปใช้ nodejs angular
และ php
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-24 16:18:01 By : บัญดิษฐ
 


 

No. 7



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 6 เขียนโดย : บัญดิษฐ เมื่อวันที่ 2021-02-24 16:18:01
รายละเอียดของการตอบ ::
ดักมาซะผมท้อเลย(55555)

เอาจริงๆ ถ้ายังไงก็นับ 1 อยู่แล้ว อย่างผมนี่ ภาษาไหนก็อยากลองนะครับ
เรื่องเขียนเว็บนี่ผมไม่คิดอยากแตะตั้งแต่แรก เลยไม่ค่อยได้ศึกษาจริงๆ จังๆ



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-24 16:30:24 By : lamaka.tor
 


 
@Tor สิ่งที่คุณถาม ผมสรุปได้ว่า มันคือ EF (Entity Framework) รู้สึกว่าจะมี 2 ประเภท
1. DB First (ที่คุณกำลังทำ)
2. Database First

ถามว่าดีไหม? ผมก็บอกว่ามันดีเยี่ยมยอดมากฯ แต่มันไม่เหมาะกับผมเลยสักนิดเดียว
ผมไม่ได้ใช้และใช้ไม่ได้ด้วย คุณต้องลองเอง ดี/ไม่ดี คุณเลือกได้

ผมพิมพ์ What New C# 7/8/9 เมื่อวานนี้ ออกมาอ่านประมาณเกือบร้อยหน้า สดฯร้อน
ผมไล่แกะ React Native, Flutter/Dart, Xamarin Native, ผมใช้เวลาไปเดือนฯกว่าฯเอง
แต่จะไม่ให้เลยสิ้นเดือนนี้ เพราะผมไม่มีเวลาแล้ว
นี่คือตัวอย่างที่ผมเรียนรู้ด้วยตัวเอง คุณดูผมเด็ดยอดของมันออกมา
Code (C#)
using System;
using System.Text.Json;

namespace JSON_New
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            Console.WriteLine("\r");
            
            Lession1();
            Lession2();
            Lession31();
            Lession32();
            //Do More...
        }

        // มาใหม่ใน C#9
        record MyDate(int year, int month, int day);
        record User(string Name, string Occupation, MyDate DateOfBirth);

        private static void Lession1()
        {
            string json = "{\"Name\":\"John Doe\",\"Occupation\":\"gardener\"," +
                           "\"DateOfBirth\":{\"year\":1995,\"month\":11,\"day\":30}}";

            var user = JsonSerializer.Deserialize<User>(json);

            Console.WriteLine(user.Name);
            Console.WriteLine(user.Occupation);
            Console.WriteLine(user.DateOfBirth);
            Console.ReadLine();
        }

        private static void Lession2() 
        {
            string data = " [ {\"name\": \"John Doe\", \"occupation\": \"gardener\"}, " +
                             "{\"name\": \"Peter Novak\", \"occupation\": \"driver\"} ]";

            using JsonDocument doc = JsonDocument.Parse(data); // มาใหม่ใน C#9 สุดยอดเลยว่ะเฮ้ย
            
            JsonElement root = doc.RootElement;

            Console.WriteLine(root);

            var u1 = root[0];
            var u2 = root[1];
            Console.WriteLine(u1);
            Console.WriteLine(u2);

            Console.WriteLine(u1.GetProperty("name"));
            Console.WriteLine(u1.GetProperty("occupation"));

            Console.WriteLine(u2.GetProperty("name"));
            Console.WriteLine(u2.GetProperty("occupation"));
            //ตัวแปร doc มันโดนทำลาย ที่นี่ ***** มันสุดยอดจริงฯ เลยว่ะเฮ้ย
        }

        // C# tuple as return value
        private static void Lession31()
        {
            var user = GetUser();          
            Console.WriteLine($"{user.FirstName} {user.LastName} is a {user.Occupation}");
            (string FirstName, string LastName, string Occupation) GetUser()
            {
                return ("Jimi", "Black", "programmer");
            }
        }

        // C# tuple as function parameter
        private static void Lession32() 
        {
            ShowInfo(("John", "Doson", "programmer"));
            ShowInfo(("Dohe", "dodee", "driver"));
            ShowInfo(("Jimi", "Black", "teacher"));
            void ShowInfo((string FirstName, string LastName, string Occupation) Fucker)
            {
                Console.WriteLine($"{Fucker.FirstName} {Fucker.LastName} is a {Fucker.Occupation}");
            }
        }
    }
}


mx-1
mx-2


@บัญดิษฐ
จะเอา Source Code ขึ้นไปไว้บนดาวอังคาร สำหรับผมไม่ใช่ปัญหาใหญ่
เขียนด้วยภาษาอะไรมันก็เจอปัญหาเหมือนกันหมด แต่มันก็ผ่านไปได้ด้วยดีทุกครั้ง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-24 18:50:12 By : ผ่านมา
 


 
#NO8 พิมพ์ผิดไป
1. Code First
2. Database First

มันไม่ตอบโจทย์ผมได้เลย แม้แต่นิดเดียว ในอนาคตอีก 4-5 ปีข้างหน้า มันอาจจะทำได้ดีกว่านี้ก็อาจเป็นไปได้นะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-24 18:52:25 By : ผ่านมา
 


 
C#9 มาใหม่ using (ตัวคืนหน่วยความจำ)
Code (C#)
using System;
using System.IO;
using System.Text;

var fileName = @"C:\Users\Jano\Documents\words.txt";

using FileStream fs = File.OpenRead(fileName);

byte[] buf = new byte[1024];
int c;

while ((c = fs.Read(buf, 0, buf.Length)) > 0)
{
    Console.WriteLine(Encoding.UTF8.GetString(buf, 0, c));
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-24 19:14:20 By : ผ่านมา
 


 
สูงสุดคืนสู่สามัญ สุดท้ายผมก็กลับมาใช้ HTML ธรรมดาฯ เต็มตัว (ปรกติก็เต็มตัวอยู่แล้ว)
โดยใช้ CSS Flexbox, Grid (วันนั้นท่าน Chaidhanan เอ่ยมา มันทำให้ผมเอะใจ)

ลอง Copy Code ไปวางและตั้งชื่อไฟล์เป็นอะไรก็ได้ เช่น JiMi.html และใช้ Browser ตัวไหนก็ได้เปิดดู
(อย่าหลงทางไปไกลมากกว่านี้)

Code (XML)
<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Pure Learning Unlimited</title>

    <!-- <link href="site1.css" rel="stylesheet" />-->
    <!-- ควรย้าย <style></style> ออกไปไว้ข้างนอก เช่น site1.css เป็นต้น -->
    <!-- ควรรู้ CSS Flexbox และ CSS Grid อย่างอื่นฯ มันก็แค่ส่วนประกอบ-->
    <style>
        html, body {
            height: 100%;
            padding: 0;
            margin: 0;
        }

        .flex-master {
            display: flex;
            flex-direction: column;
            flex-wrap: nowrap;
            height: 100%;
            overflow: auto;
        }

        .page-header {
            flex: none; /* fixed size */
            padding: 15px;
            font-size: 3em;
            font-weight: bold;
            background: #535353;
            color: white;
        }

        .page-content {
            flex: 1; /* resize in container */
            overflow: auto; /* IMPORTANT for FireFox */
            /* new flex container for content */
            display: flex;
            flex-direction: row;
        }

        .sidebar-left {
            flex: none;
            background: #838383;
            padding: 20px;
            width: 200px;
            overflow: auto;
            color: white;
        }

        .splitter {
            flex: none;
            width: 8px;
            cursor: col-resize;
            background: #535353;
        }

        .content-container {
            flex: 1 1 auto;
            background: #eee;
            padding: 20px;
            width: 100%;
            overflow-y: auto;
            display: flex; /* new flex for content/ads*/
            flex-direction: row;
        }

        .main-content {
            flex: 1 1 auto;
            width: 100%;
            padding: 10px;
        }

        .page-ads {
            flex: 0 0 auto;
            width: 180px;
            overflow: hidden;
            display: flex; /* new flex for ads */
            flex-direction: column;
        }

        .ad {
            flex: none;
            align-self: center;
            padding: 5px;
            margin: 15px;
            width: 150px;
            height: 150px;
            background: lightblue;
            overflow: hidden;
            /* center ad text */
            display: flex;
            justify-content: center;
            align-items: center;
        }

        footer {
            flex: 0 0 auto;
            background: #535353;
            color: white;
            padding: 10px;
        }
    </style>
</head>
<body>
    <div class="flex-master">
        <header class="page-header">
            This is a header your mother
        </header>

        <div class="page-content">
            <nav class="sidebar-left">
                <h3>Sidebar</h3>
                <hr />
                <ul>
                    <li>Item 1</li>
                    <li>Item 2</li>
                    <li>Item 3</li>
                </ul>
                <hr />  …
            </nav>
            <div class="splitter">
            </div>
            <div class="content-container">
                <article class="main-content">
                    This is my main content!
                    <hr />
                    This is my main content!
                    <hr />  …
                </article>
                <aside class="page-ads">
                    <div class="ad">
                        Ass 1
                    </div>
                    <div class="ad">
                        Ass 2
                    </div>
                    <div class="ad">
                        Ass 3
                    </div>                    
                </aside>
            </div>
        </div>

        <footer>
            <small>&Kicks Ass Copy Fucker Technologies, 1960</small>
        </footer>
    </div>
</body>
</html>


Pure_HTML
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-24 21:01:17 By : ผ่านมา
 


 

No. 12



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

บะ ต้องเริ่มนับ 0 อีกแล้ว 5555

คนเรามันจะนับ 0 ไปได้กี่รอบกันน๊
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-24 23:40:44 By : lamaka.tor
 


 
Search Google ด้วยคำว่า Conveyor by Keyoti

Keyoti = เครื่องตัดหัว
Conveyor = ลำเลียง/ไปสู่

(มันคือ Team Viewer + AnyDesk นั่นเอง)

ถ้าเข้าใจ ก็จะเข้าใจว่า โลกใบนี้มันช่างแคบยิ่งนัก เขียนโปรแกรมยังไม่ทันเสร็จเลย เข้าดูกันได้ทั่วโลก
ทุกฯอุปกรณ์

Code (C#)
@page "/dogdetails/{Name}"

<ContentPage>
    <ScrollView>
        <StackLayout>
            <Label Text="@Dog.Name"></Label>
            <Label Text="@Dog.Location"></Label>
            <Image Source="@Dog.ImageUrl"></Image>
            <Label Text="@Dog.Details"></Label>
        </StackLayout>
    </ScrollView>
</ContentPage>
@code {
    Animal Dog;

    [Parameter]
    public string Name
    {
        set
        {
            Dog = DogData.Dogs.FirstOrDefault(m => m.Name == Uri.UnescapeDataString(value));
        }
    }
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-25 06:53:05 By : ผ่านมา
 


 
จะว่าไป C# ตั้งแต่ Version 7 - 9
ผมชอบคำสั่ง Tuple มากที่สุดเลย
รองลงมาคือคำสั่ง record

ปรกติผมใช้คำสั่ง C# ไม่เกิน 50 คำสั่ง เช่น if, for, List, ไม่มีทางเกินนี้

มันสุดยอดจริงฯ คำสั่ง Tuple เอาไว้ส่งค่ากลับ (ได้ดังใจนึก)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-25 07:37:35 By : ผ่านมา
 


 

No. 15



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 11 เขียนโดย : ผ่านมา เมื่อวันที่ 2021-02-24 21:01:17
รายละเอียดของการตอบ ::
แจ่มครับ เรียบง่าย สูงสุดสู่สามัญจริงๆ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-25 09:17:43 By : Chaidhanan
 


 

No. 16



โพสกระทู้ ( 210 )
บทความ ( 0 )



สถานะออฟไลน์


ทำตาม link ไปก่อนครับ Data Source อย่าเพิ่งไปใส่ ถ้ายังไม่ได้ศึกษา Configuration

ผมแสดงด้วยภาพไม่ได้ เพราะเครื่องที่กำลังใช้ตอบไม่มี


Prerequisites
Visual Studio 2019 16.8 or later with the ASP.NET and web development workload .NET 5.0 SDK or later



สำหรับคำถาม No.4-5 ทำได้หมด แต่ไม่ใช่พื้นฐาน ต้องเข้าใจ concept MVC, DB application/framework(EF) จึงจะจับทางถูก

อธิบายในหน้าเดียวไม่หมดครับ...ศึกษาด้วยการเลียนแบบเขาไปก่อน ค่อยแก้ทีละส่วนแล้วดูผล ส่วนไหนงงจริงๆ ค่อย ถามเป็ด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-25 10:43:32 By : lakornworld
 


 

No. 17



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



สถานะออฟไลน์
Facebook

จากที่ดู คลิปนี้

https://www.youtube.com/watch?v=avOtyK-wfOg

ผมว่ามันเริ่มมาทางผมมั่งแล้วครับ สาย next ๆๆๆ สร้าง EF
แต่ก็สงสัยครับว่า
1. เราสามารถ สร้าง Models ในแต่ละ ตาราง จาก wizard ตัวไหนได้มั่งครับ
2. จากคลิป เห็นมีการเลือก schema เป็น master เลยสงสัยว่า ต่างจาก dbo ยังไง(คุณสมบัติ/ข้อกำหนด/การใช้งาน) ครับ

ตอนนี้ทำได้แค่ 2 ตัวอย่าง
กำลังออกแบบฐานข้อมูล ร้านขายอุปกรณ์มือถือ แล้วจะลองเขียนดูอีกซักโปรเจค
ค่อย มาศึกษาเรื่อง bootstrap css js ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-25 10:56:32 By : lamaka.tor
 


 

No. 18



โพสกระทู้ ( 210 )
บทความ ( 0 )



สถานะออฟไลน์


ที่คุณชอบ คือ framework (มีทุกอย่างมาให้ครบ)
แต่ที่ถามก่อนหน้านี้เป็น core (cross platform)

เลือกศึกษาที่ถูกใจไปก่อนนั่นแหละครับ

ส่วนคำถาม
1. มีเยอะครับค่อยๆ ศึกษาไป เดี๋ยวจะถึงบางนาเอง (ยังไม่ต้องไปสนทุกตัว)

2. schema เป็น database objects collection (ศูนย์รวมอ็อปเจกฐานข้อมูล) ที่ประกอบด้วย ตาราง, views, triggers, stored procedures, indexes,... ส่วนใหญ่จะตั้งให้สอดคล้อง username หรือที่เรียกว่า schema owner เวลาอ้าง

Quote:
schema_name.object_name



SQL Server จะมี pre-defined schemas ที่มีชื่อเดียวกันกับ users และ roles ของ built-in database มาให้ใช้สำหรับผู้เริ่มต้น เช่น

dbo, guest, sys, และ INFORMATION_SCHEMA

สีแดงถูกสวงนให้เป็น system objects ดังนั้น เราจะไม่สามารถ create/drop objects ใน 2 schemas นี้ได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-25 11:55:06 By : lakornworld
 


 
@lakornworld เห็นบอกว่าอยากทำอะไรบน Board PHP ห่าเหวอะไรก็ไม่รู้

ผมอยาก ยึดกระทรวง ศึกษาธิการ
สนใจไหม?
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-25 12:02:30 By : ผ่านมา
 


 
@lamaka.tor จากกระทู้ที่ #17

คุณกำลังจะทำ/ศึกษา แต่ผมกำลังจะ โละทิ้งให้หมดเลย
เจ็บปวดไหม?
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-25 12:05:36 By : ผ่านมา
 


 

No. 21



โพสกระทู้ ( 210 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 19 เขียนโดย : ผ่านมา เมื่อวันที่ 2021-02-25 12:02:30
รายละเอียดของการตอบ ::
ไม่ใช่ผมอยากทำ แค่แนะนำและกระตุ้นหรือปลุกกระแสให้มีการพัฒนาด้านการศึกษาของโลก เพราะชีวิตผมเป็นละครน้ำเน่า คนเดียวผมก็ไม่เอา ถ้ามีคนสนใจก็จะร่วมด้วย (ไม่ได้เอาตัวเองเป็นยางลบยอด)

กระทรวงใน(หรือแม้แต่ประเทศ) ไทย มีสภาพพิการไม่ต่างจากลูกพี่อย่าง สหรัฐ ดังนั้น ถ้าให้จีบ ผมเลือกพี่ ถีบน้องดีกว่า


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-25 12:26:07 By : lakornworld
 


 

No. 22



โพสกระทู้ ( 210 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 20 เขียนโดย : ผ่านมา เมื่อวันที่ 2021-02-25 12:05:36
รายละเอียดของการตอบ ::
@ นี่ฮา(ผ่านมา)โต๊ส

สนใจ 89 ° หรือไม่ หายากนะบ้านเรามีแค่ 40 กระดกหน้าร้อน ยังกับขุมไฟโลกันตร์...จากนั้น เข้าไปยึดฐานทับสหัมฯ take over Micro-pler เพื่อสั่งการ dev-er ให้พัฒนา Real time composer/trans-machine ภายในเวลา 6 gP เพื่อให้มนุษย์สามารถเรียนรู้สิ่งแปลกใหม่ภายใต้กระแสแรงดัน < 0.0012 mKpH สุดท้ายประมวลผลตามความเร็วแสง 9 g^+45bxc ไปตามมวลอวกาศแล้วย้อนกลับมาแปรสภาพจาก bxc => zkm ส่งผลให้มวลโมเลกุลในร่างกายได้รับแรงเหวี่ยงไปถึงสมองออกมาเป็นสิ่งที่เรียกว่า "เนรมิตแท้"


แต่ตอนนี้ทำสำเร็จไปแค่ < 24% เนื่องจากยังคำนวณความเร็วแสงเทียบกับ คลื่นไฟฟ้าและแรงแม่เหล็กของโลก ได้ไม่ลงตัว หนูทดลองที่สำเร็จ คือ ปลา จากการทดลองจะเห็นปลาเต้นเป็นจังหวะได้ตามเสียงเพลง และมีชีวิตอยู่บนบกได้นานถึง 18 ชั่วโมง...แต่กับคนยังไม่มีใครอุทิศตน ตราบใดที่ยังวิจัยได้ไม่ถึง 80% ของความสำเร็จ คิดว่า ผลที่ได้คือ เลือดไหลออกทางปาก จมูก ทวาร รวมไปถึงตับ ไต ไส้ พุง และเส้นเลือดในสมองแตกได้ภายใน 0.0045 วินาที


ถ้าใครยินดีเป็นหนูทดลองก่อน 80% ลงชื่อไว้ได้



ประวัติการแก้ไข
2021-02-25 12:51:59
2021-02-25 12:54:57
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-25 12:50:24 By : lakornworld
 


 
อยากเล่นกับ กรมการศึกษานอกโรงเรียน/กรมสามัญศึกษา
x_learning01

ความรู้ด้านระบบงาน ผมคิดว่า ผมบรรลุขั้น อรหันต์
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-25 12:57:53 By : ผ่านมา
 


 
และที่สำคัญ ผมมี Source Code ตัวเต็มอยู่ในมือ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-25 13:03:43 By : ผ่านมา
 


 

No. 25



โพสกระทู้ ( 210 )
บทความ ( 0 )



สถานะออฟไลน์


89 ทำไมหายาก เพราะตอนนี้ TOP1 ตัดลงเหลือ 78

西北王酒

TOP1


https://www.sohu.com/a/372768058_611116
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-25 15:06:56 By : lakornworld
 


 
@ lakornworld ผมก็มั่วฯ ซั่วฯ ไปอย่างนั้นแหละ
เอาเข้าจริงฯ ผมก็ลำบากใจมากพอสมควรเลยเชียวแหละ

เดินหน้าก็ต้องระมัดระวังทุกย่างก้าว ก้าวผิดก็ต้องถอยกลับได้
ผมยังใช้ Newtonsoft.Json อยู่ 4 โปรเจค ของใหม่มันโดนบังคับให้ใช้ System.Text.Json

ผมเป็นคนไม่เหมือนใคร สุขและทุกข์ก็ไม่เหมือนใคร
นี่ยังดีนะที่ผมทดสอบการเรียก WebAPI ตรงตรง ได้แล้ว
(ของเดิมก็ยังอยู่ ของใหม่ก็ต้องเดินหน้า)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-25 17:18:27 By : ผ่านมา
 


 
ตอบความคิดเห็นที่ : 15 เขียนโดย : Chaidhanan เมื่อวันที่ 2021-02-25 09:17:43
รายละเอียดของการตอบ ::
ผมใช้เวลาไปเดือนกว่าฯนิดฯ ดูทุกฯอย่าง ทำทุกฯอย่าง ทำทั้งวัน ทำทั้งคืน
ทำทุกวัน ทำทุกคืน ไม่ง่ายเลยครับท่าน กว่าจะสรุปมันออกมาได้
มันมีข้อดีข้อเสีย ในตัวของมันเองเสมอ

สรุปผมเลือก C# ตัวเดียวโดดฯ เลยครับท่าน เลิกใช้ MVC

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-25 17:29:30 By : ผ่านมา
 


 
@Tor ผมไม่ได้เขียนโปรแกรมตามตำรา ระบบ Movie ของคุณ

หนึ่งเรื่อง(หนึ่งหน้าจอ) แยกทำเป็นสี่ นั่นคือ List/Add/Edit/Delete
ผมทำหน้าเดียวแบบนี้
PageA?action=L
PageA?action=A
PageA?action=E
PageA?action=D

Code (C#)
<div id="divList">ข้อมูลหลักให้เลือกว่าจะทำอะไร</div>
<div id="divDetail" style="display:none;"></div>
<script>
// สมมุติเป็นการเพิ่มข้อมูล
 $("#divDetail").show();
 $("#divList").hide();
</script>


งานของคุณและผมมันไม่เหมือนกัน มันก็ไม่จำเป็นต้องใช้เหมือนกัน ก็เป็นไปได้หมดแหละ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-25 17:39:43 By : ผ่านมา
 


 
Quote:
สรุปผมเลือก C# ตัวเดียวโดดฯ เลยครับท่าน เลิกใช้ MVC


เดี๋ยวจะเข้าใจผิด คำว่ายกเลิกของผมหมายถึง แยกออกไป ไม่ให้มาปนกันเลย
แต่จะเอาเข้ามาใส่ เมื่อไหร่ก็ได้ อื่นฯ ก็เหมือนกัน เช่น

JavaScript
Bootstrap 4/5
Limitless
etc...

เอาเข้าเอาออกเมื่อไหร่ก็ได้ สมองมันคิดเยอะ บางทีมันก็พันกันไปหมด อธิบายให้เข้าใจได้ก็ยากโขอยู่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-25 17:50:39 By : ผ่านมา
 


 
เหลือตัวสุดท้ายที่เรา ยังถอด JavaScript/Jquery ออกไม่ได้
แต่ไม่ถอดออก มันก็ดีเหมือนกันนะ

ทำนะทำได้อยู่แล้วแต่ต้องใช้ พลังมหาศาล/เวลาพอสมควรเลย ก็ค่อยฯทำไป
วันละนิดวันละหน่อย ไม่ได้ตั้งเป้าว่าจะต้องเสร็จเมื่อไหร่ เสร็จ/ไม่เสร็จ มันก็มีค่าเท่ากัน

remain_x
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-25 18:22:58 By : ผ่านมา
 


 

No. 31



โพสกระทู้ ( 210 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 26 เขียนโดย : ผ่านมา เมื่อวันที่ 2021-02-25 17:18:27
รายละเอียดของการตอบ ::
System.Text.Json ยังใช้ได้ใน core 3.1 ซึ่งผมคิดว่าเพียงพอกับความฟุ่มเฟือย 《

คุณคิดว่าจะได้ exception แบบใด

Non-int values for int properties
{
  "Int96_1": "IntVal",
  "Int96_2": true,
  "Int96_3": false
}

virtual public class APussyClass
{
    public int Int96_1 { get; set; }
    public int Int96_2 { get; set; }
    public int Int96_3 { get; set; }
}


https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-migrate-from-newtonsoft-how-to?pivots=dotnet-5-0



ประวัติการแก้ไข
2021-02-25 21:51:18
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-25 21:50:16 By : lakornworld
 


 

No. 32



โพสกระทู้ ( 210 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 30 เขียนโดย : ผ่านมา เมื่อวันที่ 2021-02-25 18:22:58
รายละเอียดของการตอบ ::
Quote:
เหลือตัวสุดท้ายที่เรา ยังถอด JavaScript/Jquery ออกไม่ได้
แต่ไม่ถอดออก มันก็ดีเหมือนกันนะ


เพื่อ???

ถ้ารู้โครงสร้าง/กลไก ก็ลากแล้ว

โค่น

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-25 21:57:44 By : lakornworld
 


 

No. 33



โพสกระทู้ ( 210 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 14 เขียนโดย : ผ่านมา เมื่อวันที่ 2021-02-25 07:37:35
รายละเอียดของการตอบ ::
Tuple เป็นหนึ่งใน Sa-Type อีกอันที่ใช้แทนกันได้ แบบไม่ต้องคิดมาก


Code (C#)
static void Main(string[] args)
{
    APussyClass Ovary = new APussyClass();

    dynamic dynamic_ovary = new APussyClass();

    dynamic_ovary.pussyMethod1(101, 8);

    // ไม่ว่าแตดจะมีหรือไม่ compiler ก็ไม่ท้วงติง
    dynamic_ovary.ClitorisMethod("some Labia", 9, null);
    dynamic_ovary.nonexistentMethod();
}



Code (C#)
class APussyClass
{
    public APussyClass() { }
    public APussyClass(int v) { }

    public void pussyMethod1(int i) { }

    public void pussyMethod2(string str) { }
}



ประวัติการแก้ไข
2021-02-25 22:14:05
2021-02-25 22:15:49
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-25 22:11:53 By : lakornworld
 


 
#NO 31
dynamic is dynamic not a Tuple


Code (C#)
[TestMethod]
public void JObjectOutputTest()
{
    // strong typed instance 
    var jsonObject = new JObject();
                        
    // you can explicitly add values here using class interface
    jsonObject.Add("Entered", DateTime.Now);

    // or cast to dynamic to dynamically add/read properties dynamic album = jsonObject;

    album.AlbumName = "Dirty Deeds Done Dirt Cheap";
    album.Artist = "Fucker";
    album.YearReleased = 1976;

    album.Songs = new JArray() as dynamic;
            
    dynamic song = new JObject();
    song.SongName = "Dirty Deeds Done Dirt Cheap";
    song.SongLength = "4:11";
    album.Songs.Add(song);

    song = new JObject();
    song.SongName = "Love me love my ass";
    song.SongLength = "3:10";
    album.Songs.Add(song);

    Console.WriteLine(album.ToString());
}


This produces a complete JSON structure
Code
{ "Entered": "2012-08-18T13:26:37.7137482-10:00", "AlbumName": "Dirty Deeds Done Dirt Cheap", "Artist": "Fucker", "YearReleased": 1976, "Songs": [ { "SongName": "Dirty Deeds Done Dirt Cheap", "SongLength": "4:11" }, { "SongName": "Love me love my ass", "SongLength": "3:10" } ] }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-26 05:14:07 By : ผ่านมา
 


 
Tuple


พิมพ์ จิมิจุด นี่คือข้อแตกต่าง

Code (C#)
using System;

namespace FirstBlazorHybridApp
{
    internal class CounterState
    {
        public int CurrentCount { get; private set; }

        public void IncrementCount()
        {
            CurrentCount++;
            StateChanged?.Invoke();

            var Jimi = GetUser();
            Jimi.  // <-- *****
        }

        public event Action StateChanged;

        (string JiMi, int Age) GetUser()
        {
            return (JiMi: "เบ้อเร่อเลย", Age: 30);
        }
    }
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-26 05:29:14 By : ผ่านมา
 


 
#NO 32 เพื่ออะไร?

ผมทำเอาไว้ คลิกไม่ได้ บางช่อง (Cell) เอาเม้าส์ลากผ่าน/เลื่อนเคอร์เซอร์ ผมทำเสียงหมาเห่าใส่เลย
บางทีผมยัด CSS เข้าใส่แต่ละช่อง (Cell)
บางทีผมยัด Not A number พิมพ์ หอ ไม่ได้เลยนะ
และอื่นฯ อีกเพียบเลย อทิเช่น

ดักจับค่า OldValue และ NewValue ของแต่ละช่อง (Cell)
พูดง่ายฯว่า ขั้นสูงสุด ก็ไม่ปาน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-26 05:39:09 By : ผ่านมา
 


 
ขยายความ #NO 34 เอาให้ชัดเลย

Code (C#)
[HttpPost]
public JObject PostAlbumJObject(JObject jAlbum)
{
    // dynamic input from inbound JSON
    dynamic album = jAlbum;

    // create a new JSON object to write out
    dynamic newAlbum = new JObject();

    // Create properties on the new instance
    // with values from the first
    newAlbum.AlbumName = album.AlbumName + " New";
    newAlbum.NewProperty = "something new";
    newAlbum.Songs = new JArray();
    
    foreach (dynamic song in album.Songs)
    {
        song.SongName = song.SongName + " New"; 
        newAlbum.Songs.Add(song);                
    }
            
    return newAlbum;
}


แต่ไม่ว่าจะเขียนแบบไหน มันก็ไม่ได้ทำให้ เมีย สาวขึ้นเลย มีแต่หนังเหี่ยวมากขึ้นไปทุกฯวัน
ยกเว้นว่า ส่งหล่อนไป เกาหลี เจอมีดอีโต้หมอ อาจสาวขึ้นเหมือนเดิม ว่ามั้ย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-26 05:50:21 By : ผ่านมา
 


 
ฝั่งส่ง
Code (JavaScript)
let params = [];
let purc = {act: "A", token: "ตัวเขมร"};
let purcHead = {PO_Number: "1234", PO_Date: "01-01-2021"};
let purcDetail = [{Seq: 1}, {Seq: 2}, {Seq: 3}];

params.push(purc, purcHead, purcDetail);

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-26 05:59:33 By : ผ่านมา
 


 
ลองดู Native ผสมกับ Hybrid เราพอใจระดับหนึ่ง แต่คนอื่นฯ เราไม่รู้และไม่ได้สนใจด้วย (เราไม่ได้เขียนโปรแกรมตามกระแส)
test_9
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-26 06:52:32 By : ผ่านมา
 


 
Blazor ยัง งง งง ว่ามันทำได้อย่างไร ยังนึกไม่ออก
ต้องลองผ่า Source Code ของมันดู ถ้าเดาไม่ผิดน่าจะเป็น WebView
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-26 07:03:12 By : ผ่านมา
 


 
และถ้าให้เดาต่อ น่าจะเทียบเท่ากับ Flutter (เขียน Mobile แล้วได้ WebApp ด้วย)
คิดว่า มันเลียนแบบ React Native มันเลียนแบบ Flutter
ไม่แน่นะ ทำทีหลัง อาจจะทำได้ดีกว่า

ลองไปเรื่อยเปื่อย ไม่ลองไม่รู้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-26 07:06:07 By : ผ่านมา
 


 
ได้ข่าวแว่วฯว่า Google กระโดดมาร่วมแจมด้วย จริงเท็จไม่รู้นะ
ได้ข่าวแว่วฯว่า Adobe/Auto CAD กระโดดมาร่วมแจมด้วย จริงเท็จไม่รู้นะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-26 07:09:36 By : ผ่านมา
 


 
เผื่อมีบางคนเข้าใจ โครงสร้างของ Blazor
เขียนครั้งเดียววิ่งได้ทุกแฟลตฟอร์ม

1. ฝั่งเวป เรา OK เลย
2. อื่นฯ ยังอยู่ในช่วง Experimental (ทดลอง-ปรับปรุง)

fuck_blazor9
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-26 07:42:15 By : ผ่านมา
 


 

No. 44



โพสกระทู้ ( 210 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 34, 35, 37 เขียนโดย : ผ่านมา เมื่อวันที่ 2021-02-26 05:14:07
รายละเอียดของการตอบ ::
ต่างแค่ตอนเยสชอบใส่กับไม่ใส่ลิง
เพราะทวดกับเทียดมีผัวคนเดียวกัน
เหลนโหลนหล่อนกร่อนมาตามพันธุ์

List - Homogeneous
Tuple - Hetergeneous
...
Dictionary/KeyValuePair
ฯลฯ



ตอบความคิดเห็นที่ : 39-43 เขียนโดย : ผ่านมา เมื่อวันที่ 2021-02-26 06:52:32
รายละเอียดของการตอบ ::
โคตรเหง้าศักราชมันทำมาดี เหา เห็บ หมัด เหลือบ ไร แมลงหวี่ ฉิมพลี มลีวัน ฯลฯ เปลี่ยนลูกจ้าง หางแกว เป็นหัวเผือก
เลยเลือกเสือกผลงานมารผจญ ถึงจะตามหลังพวก Vaadin, Stamplay, App Maker,... แต่ก็กำลังกระเสือกกระสนดั้นด้น

PowerApps


จะ น้าถีบ NativeScript, จาม Ionic หรือ กูซ่าร์ Quasar ก็ไม่ต่าง

กูซ่าร์ ลาล่า
Code (HTML)
<div id="APussy-app">
  <div class="q-pa-md">
    <div class="q-gutter-md row items-center">
      <q-bar style="min-width: 250px;" class="bg-teal text-white rounded-borders">
        <div class="cursor-pointer non-selectable">
          File
          <q-menu>
            <q-list dense style="min-width: 100px">
              <q-item clickable v-close-popup>
                <q-item-section>Open...</q-item-section>
              </q-item>
              <q-item clickable v-close-popup>
                <q-item-section>New</q-item-section>
              </q-item>
              <q-separator></q-separator>
              <q-item clickable>
                <q-item-section>APussy</q-item-section>
                <q-item-section side>
                  <q-icon name="keyboard_arrow_right"></q-icon>
                </q-item-section>

                <q-menu anchor="top end" self="top start">
                  <q-list dense>
                    <q-item
                      v-for="n in 3"
                      :key="n"
                      clickable
                    >
                      <q-item-section>Sub-Vagina</q-item-section>
                      <q-item-section side>
                        <q-icon name="keyboard_arrow_right"></q-icon>
                      </q-item-section>
                      <q-menu auto-close anchor="top end" self="top start">
                        <q-list dense>
                          <q-item
                            v-for="n in 3"
                            :key="n"
                            clickable
                          >
                            <q-item-section>3rd Clitoris</q-item-section>
                          </q-item>
                        </q-list>
                      </q-menu>
                    </q-item>
                  </q-list>
                </q-menu>

              </q-item>
              <q-separator></q-separator>
              <q-item clickable v-close-popup>
                <q-item-section>Quit</q-item-section>
              </q-item>
            </q-list>
          </q-menu>
        </div>
        <div class="cursor-pointer non-selectable">Edit
          <q-menu>
            <q-list dense style="min-width: 100px">
              <q-item clickable v-close-popup>
                <q-item-section>Cut</q-item-section>
              </q-item>
              <q-item clickable v-close-popup>
                <q-item-section>Copy</q-item-section>
              </q-item>
              <q-item clickable v-close-popup>
                <q-item-section>Paste</q-item-section>
              </q-item>
              <q-separator></q-separator>
              <q-item clickable v-close-popup>
                <q-item-section>Select All</q-item-section>
              </q-item>
            </q-list>
          </q-menu>
        </div>
        <q-space></q-space>
        <q-btn dense flat icon="minimize"></q-btn>
        <q-btn dense flat icon="crop_square"></q-btn>
        <q-btn dense flat icon="close"></q-btn>
      </q-bar>
    </div>
  </div>
</div>
Code (JavaScript)
new Vue({
  el: '#APussy-app'
})



Quasar Sub-Menu
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-26 11:52:01 By : lakornworld
 


 
@lakornworld #No 44 ลองมาหมดแล้ว Vue/React/Angular

มันแจ๋วเยี่ยมยอด แต่มันก็ยังต้องใช้ JavaScript เขียนอยู่ดี
เราไม่อยากเขียนโดยไม่จำเป็น
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-26 13:56:40 By : ผ่านมา
 


 

No. 46



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 45 เขียนโดย : ผ่านมา เมื่อวันที่ 2021-02-26 13:56:40
รายละเอียดของการตอบ ::
ถ้าไม่อยากใช้ ก็ refresh มันทั้งหน้าทุกครั้ง


ผมว่าไม่มีหรอกไม่ใช่ javascript เพราะมันออกแบบมาให้ใช้ html+javascript
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-26 14:52:59 By : Chaidhanan
 


 
ตอบความคิดเห็นที่ : 46 เขียนโดย : Chaidhanan เมื่อวันที่ 2021-02-26 14:52:59
รายละเอียดของการตอบ ::
เท่าที่ผมไล่ดู Vue/React/Angular/Blazor ของยักษ์ใหญ่พอฯกัน
A_อาลีบาบา/B_FaceBook/C_Google/D_Microsoft สรุปว่าตรงกันนั่นคือ
1. State
2. Reuseable (Component)



ข้อที่ 2. ใช่หลบไม่พ้น HTML + JavaScript แต่เขียนไว้ที่ Component ที่เดียว A, B, C, D ตรงกัน
ข้อที่ 1. Blazor ทำได้เนียนกว่า นุ่มนวลกว่า ในความคิดของผม ใช้คำว่าเหนือกว่าก็ได้เหมือนกัน

ตัวอย่างหน้าจอ Markup บางส่วน
state_ABCD
Code (C#)
<Form @ref="form"
    Style="width:50%;"
    Model="@model"
    OnFinish="OnFinish"
    OnFinishFailed="OnFinishFailed"
    LabelColSpan="8"
    WrapperColSpan="16">
    <FormItem Label="รหัสแผนก">
        <Input @bind-Value="@context.XCode" Style="width:25%" />
    </FormItem>
    <FormItem Label="ชื่อแผนก">
        <Input @bind-Value="@context.Note" />
    </FormItem>
    <FormItem Label="ชื่อแผนก (US)">
        <Input @bind-Value="@context.Note2" />
    </FormItem>
    <FormItem WrapperColOffset="8" WrapperColSpan="16">
        <Button Type="@ButtonType.Primary" HtmlType="submit">Submit</Button>
        <Button OnClick="Reset">Reset</Button>
        <Button Type="@ButtonType.Link" OnClick="OnFill">Fill form</Button>
    </FormItem>
</Form>


Source code C# เต็ม
Code (C#)
@code
{
    public class Model
    {
        [Required]
        public string XCode { get; set; }
        [Required]
        public string Note { get; set; }
        [Required]
        public string Note2 { get; set; }
    }

    private Model model = new Model(); // ตรงนี้คือ State ทำได้เนียนและนุ่มนวลมาก
    private Form<Model> form; // เพื่ออ้างอิงกับ HTML form

    private void OnFill(MouseEventArgs args) //เมื่อกดปุ่ม ใส่ข้อความ
    {
        model.XCode = "Hello XCode";
        model.Note = "Hello Note";
        model.Note2 = "Hello Note2";
        form.Validate();
        Console.WriteLine($"form ref:{form}");
    }

    private void Reset(MouseEventArgs args)
    {
        form.Reset();
    }

    private void OnFinish(EditContext editContext) //เมื่อกดปุ่ม Submit และข้อมูลถูกต้อง
    {
       // เอาลง RDBMS ตรงนี้ได้เลย โดยไม่จำเป็นต้องใช้ RestFul Service
        Console.WriteLine($"Success:{JsonSerializer.Serialize(model)}");
    }

    private void OnFinishFailed(EditContext editContext) //เมื่อกดปุ่ม Submit และป้อนข้อมูลไม่ครบ
    {
        Console.WriteLine($"Failed:{JsonSerializer.Serialize(model)}");
    }
}

<FuckerScript>
    <script>
        //ถ้าจำเป็นต้องเขียน JS ก็ต้องเขียน
        function howAreyou() {
            alert('sayHi');
        }
    </script>
</FuckerScript>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-27 00:44:56 By : ผ่านมา
 


 
จาก #NO 47 บรรทัดที่ 33 เท่าที่ผมทราบ ณ. วันนี้ Vue/React/Angular ยังทำไม่ได้
แต่อนาคต ไม่แน่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-27 01:09:13 By : ผ่านมา
 


 
@Tor ทำไมเราถึงไม่ใช้ MVC (มันเน้น Actions --> Controller) มันดีเกินไปสำหรับเรา

แต่แต่แต่ ดูนี่ก่อน จะไปหน้าไหน (Routes) เราถึงหยุดใช้ MVC

Code (C#)
@page "/PageA"
@page "/PageA/{Param1}"
@page "/PageA/{Param1}/{Param2}"
... อิสระเสรี ตามใจฉัน

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-27 01:19:02 By : ผ่านมา
 


 
1. เขียนเวปไม่ใช่ปัญหา
2. เขียนโมบายไม่ใช่ปัญหา (เขียนง่ายกว่าเวปเป็นพันเท่า)

ต้นตอของปัญหาคือ ความต้องการเขียนครั้งเดียวแล้วใช้ได้ทุกแฟลตฟอร์ม (เรายังไม่ได้ข้อสรุปที่ชัดเจน)
ที่มาที่ไปมาจาก เราไปตลาดนัด เห็นคนซื้อ-คนขาย เขาจ่ายเงินกันด้วย แอปแป้ว "เป๋าตังค์"

โปรแกรมในฝันของเรามันต้อง เรียบง่าย ตรงไปตรงมา ดังรูปภาพตัวอย่าง
x_6
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-27 11:38:24 By : ผ่านมา
 


 
@ lakornworld มีอยู่หลักหนึ่ง สำหรับงานโปรแกรมมิ่ง ที่คุณและผมควรจดจำให้ขึ้นใจ

เราไม่ได้เขียนโปรแกรม เพื่อแข่งกับใคร เพื่อเอาชนะใคร เพราะฉะนั้นเราจะไม่มีวัน พ่ายแพ้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-27 11:47:30 By : ผ่านมา
 


 
ดูให้เข้าใจ แค่เข้าใจก็ยังไม่พอ มันต้องรู้ว่าจะเอาไปใช้อย่างไรด้วย?

Tuple, record, etc C#9

Code
https://www.thomasclaudiushuber.com/2020/09/01/c-9-0-records-work-with-immutable-data-classes/

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-27 11:58:33 By : ผ่านมา
 


 
Code (C#)
var friend = new Friend
{
    FirstName = "Thomas",
    LastName = "Huber"
};


var newFriend = friend with { LastName = "Mueller" };

Console.WriteLine(friend == newFriend); // false, as property values are different

var anotherFriend = newFriend with { LastName = "Huber" };

Console.WriteLine(friend == anotherFriend); // true, as property values are the same

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-27 11:59:38 By : ผ่านมา
 


 

No. 54



โพสกระทู้ ( 210 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 45 เขียนโดย : ผ่านมา เมื่อวันที่ 2021-02-26 13:56:40
รายละเอียดของการตอบ ::
2 ทาวเลือกที่คิดออก
1. เขียน transpiling script (Browser Modification)
2. เขียนแอปท่องเว็บเอง (Self-Browser Designation)

อย่างหลังอาจใช้เวลาน้อยกว่า อันแรกเพราะยัดเท่าที่จำเป็น แต่ถ้าเกิดทำแล้วปัง security no-way เท่าอันแรก



ตอบความคิดเห็นที่ : 47-48 เขียนโดย : ผ่านมา เมื่อวันที่ 2021-02-27 00:44:56
รายละเอียดของการตอบ ::
blazor มี container framework ไม่ต่ำกว่า 3 levels ก่อนถึงภาษาเครื่อง โดยธรรมชาติจึงช้ากว่า Non-Microsoft framework
แต่มัน (blazor wasm) ยัด WebAssembly ในการทำงานฝั่ง client จึงได้ (almost) Zero-latency

ถ้าวัดกันแบบแฟร์ๆ WASM vs WASM ผมว่า performance สู้ Non-Microsoft ไม่ได้
แต่มีอย่างหนึ่งที่เหนือกว่าชาวบ้านคือ security ทั้งๆ ที่ Desktop app ห่วยสุด แต่ web-app ต้องยอมใจ



ตอบความคิดเห็นที่ : 50 เขียนโดย : ผ่านมา เมื่อวันที่ 2021-02-27 11:38:24
รายละเอียดของการตอบ ::
เล็กหรือใหญ่ไปก็ทรมารนก

เหมือน #44 (Vaadin, NativeScript, Quasar...etc.) ทีเดียวจบ
ถ้าอยากเร็ว แค่ import แปลง/import เป็น .wasm




#51-53
เริ่มร้อนขึ้นทุกวัน 89 ไม่น่ารอด วันนี้ผ่อนมาซัก 65 แล้วกัน
...ว่าแต่คุณเคยศึกษาเกี่ยวกับมนุษย์ล่องหนหรือไม่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-28 15:00:37 By : lakornworld
 


 
@lakornworld จาก #NO 64

อธิบายได้ตรงใจเรายิ่งนัก แทบหาข้อโต้แย้งไม่ได้เลย เราแก่แล้วแต่นับว่าเราโชคดี
ที่มีโอกาสเห็นว่า งานโปรแกรมมิ่ง มันไม่เหมือนเดิมอีกต่อไปแล้ว นั่นคือ

ใครฯ ก็เขียนได้ แม้กระทั่งแมวก็เขียนได้
เรานั่งดู Quasar ประมาณ 15 นาที ก็พอเข้าใจเกือบร้อย % (เราไม่เคยใช้มาก่อนเลยนะ)

Blazor ยังห่างหลายขุม ในด้านความเร็ว (Render) อย่างน้อยฯ 5 เท่า
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-28 20:27:08 By : ผ่านมา
 


 
ยักษ์ใหญ่ กลืน ยักษ์เล็ก A, B, C, D ใช่ย่อย
มันทำได้หมดแหละ แต่มีเงื่อนไข เสมอ


Code
//import { auth, EventContext } from 'firebase-functions' import * as functions from 'firebase-functions'; import { UserInfo } from '../../../common/models/userInfo'; import { UserRecord } from "firebase-functions/lib/providers/auth"; import moment from 'moment'; import { db } from "../config/config"; import * as admin from "firebase-admin"; async function _onProductsUpdated(change: any, context: any) { const productId = context.params.productId const newValue = change.after.data(); // e.g. {'displayName': 'FuckerMan', 'weight': 85} const oldValue = change.before.data(); // e.g. {'displayName': 'FuckerMan', 'weight': 65} var pv = 0.00; var mp = 0.00; var va = 0.00; var JiMi ="Very Big"; if (newValue.unitCost != oldValue.unitCost) { const productCatgegory = db.collection("productCategory").where("productCatId", "==", newValue.productCatId) .get() .then( shapshot => { const x = shapshot.docs[0].data(); pv = x.productSellPrice.percentPlus; mp = x.productSellPrice.messengerPrice; va = x.productSellPrice.vat; }); const products = db.collection("products").where("productId", "==", productId) .get() .then(snapshot => { snapshot.forEach(doc => { // doc.ref.collection let rowUpdate = db.collection("products").doc(doc.id); let rowData = doc.data(); let unitCost = rowData.unitCost; //unitCose let unitWeightFrom = rowData.productPackage.unitWeightFrom; let lastSellPrice = unitCost + ((unitCost * (pv / 100)) + (mp * unitWeightFrom)) * (1 + (va / 100)); rowUpdate.update({ unitSellPrice: lastSellPrice }) }); }); } } export const onProductsUpdated = functions.firestore .document("products/{productId}") .onUpdate(_onProductsUpdated);




Code (SQL)
declare @TotalRows int = (select count(1) from ARMas);
declare @RowCount1 int = 1;
declare @RowCount2 int = 0

declare @AtTime1 varchar(2) = ''; -- 08:00:00
declare @AtTime2 varchar(2) = ''; -- 08:00:00
declare @JiMi varchar(2);

while @RowCount1 <= @TotalRows
  begin
  --set nocount on;
  select @AtTime1 = WorkTime from ARMas Where Id = @RowCount1;
  set @JiMi = @AtTime1;
  while @RowCount2 <= 4
    begin
	 select @JiMi = WorkTime from ARMas Where Id = @RowCount1;
     if @RowCount2 > 4
       begin
         break; -- exists 'เก่า' <> 'ใหม่'
       end
     print @AtTime2 + ' -> ' + cast(@RowCount2 as varchar) + ' <--' + format(6996, 'D6');
     set @RowCount2 = @RowCount2 + 1;
    end
  print @Attime1;
  set @RowCount2 = 0;
  set @RowCount1 = @RowCount1 + 1;
end;

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-02-28 20:50:42 By : ผ่านมา
 


 
ยังไม่ได้นอนเลย นั่งดู Vue/Quasar และได้ข้อสรุปว่า เหมือนกันหมดแทบจะบรรทัดต่อบรรทัด
อันนี้เอามาจาก
Quote:
www.level51pc.com
เราก็ไม่รู้จักหรอก พิมพ์คำว่า สอน Blazor บังเอิญเจอ

Code (C#)
@page "/todo"

<h1>Todo Items</h1>

@if (this.IsNameSet)
{
    <div class="alert alert-info">
        Hello @this.Name
    </div>

    <div class="input-group mb-3">
        <div class="input-group-prepend">
            <div class="input-group-text">
                <input type="checkbox" disabled>
            </div>
        </div>
        <input type="text" class="form-control" placeholder="Title" @bind-value="NewItem.Title">
        <div class="input-group-append">
            <button class="btn btn-primary" type="button" @onclick="SendNewItem">Send</button>
        </div>
    </div>
    <ul class="list-group">
        @foreach (var item in Data.Todo.Items.OrderBy(t => t.Title))
        {
            <li class="list-group-item">
                <div class="form-check">
                    <input class="form-check-input" type="checkbox"
                           @onchange="(e)=> { item.IsDone = (bool)e.Value; this.OnStateChanged(); }"
                           @attributes="GetChecked(item)">
                    <label class="form-check-label">
                        @item.Title
                        <br />
                        <span class="text-muted">by: @item.Owner</span>
                    </label>
                </div>
            </li>
        }
    </ul>
}
else
{
    <form>
        <div class="alert alert-warning" role="alert">
            Please Enter Your Name
        </div>
        <div class="input-group">
            <input type="text" class="form-control" placeholder="Your Name" @bind-value="Name">
            <div class="input-group-append">
                <button class="btn btn-outline-secondary" type="button" @onclick="SetName">Sign-In</button>
            </div>
        </div>
    </form>
}

@code {

    private static event Action StateChanged = delegate { };

    private void OnStateChanged()
    {
        Todo.StateChanged();
    }

    private IEnumerable<KeyValuePair<string, object>> GetChecked(Data.Todo item)
    {
        if (item.IsDone)
        {
            yield return new KeyValuePair<string, object>("checked", "checked");
        }
        yield break;
    }

    protected override void OnInitialized()
    {
        Todo.StateChanged += () =>
        {
            this.InvokeAsync(this.StateHasChanged);
        };
    }

    public bool IsNameSet { get; set; }

    public string Name { get; set; }

    public void SetName()
    {
        if (string.IsNullOrEmpty(Name) == false)
        {
            this.IsNameSet = true;
        }
    }

    public Data.Todo NewItem { get; set; } = new();

    public void SendNewItem()
    {
        var item = this.NewItem;
        this.NewItem = new();

        item.Owner = this.Name;
        Data.Todo.Items.Add(item);
        Todo.StateChanged();
    }
}


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-03-01 04:35:37 By : ผ่านมา
 


 
กว่าจะเอามันลง เขียนเวปแล้ววิ่งได้บนมือถือ เป็นของแถม
1. Mobile Native -- ไม่ใช่เป้าหมายของเรา
2. Mobile Hybrid -- เป้าหมายของเราอยู่ตรงนี้

หลักการ Shared UI (แยกออกไปอีก 1 DLL)

มาเล่าให้ฟัง เผื่อเป็นแรงบันดาลใจ ความพยายามอยู่ที่ไหน
ความสำเร็จอยู่ที่นั่น

ไม่มีอะไรได้มาง่ายฯเลย

Success_01
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-03-01 22:39:58 By : ผ่านมา
 


 
เขียนโปรแกรมได้สนุกขึ้นเยอะเลยว่ะเฮ้ย (รูปของจริงนะมาจากอินตาเนต)

Code (C#)
@namespace FuckerDisplayUI_21

<center><h2>สวัสดี Mobile Hybrid</h2></center>
<Card Hoverable Style="width: 240px; margin:auto!important" Cover="coverTemplate">
    <CardMeta Title="Europe Street beat" Description="www.instagram.com"/>
</Card>         

@code
{
    [Parameter] public EmailData Email { get; set; }

    private RenderFragment coverTemplate =@<img alt="example"  src="https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png" />;
}


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-03-01 22:55:36 By : ผ่านมา
 


 
สิ่งที่ดีที่สุด ณ. วันหนึ่ง ไม่จำเป็นต้องถูกเลือก เราเทียบมาหมดแล้ว เขียนด้วยตัวเองจริงฯมาแล้ว
เราเห็น Limitless เราหยิบเอามาใช้ได้อย่างไร้ขีดจำกัด
เราเห็น Vue/Quasar เราหยิบเอามาใช้ได้อย่างไร้ขีดจำกัด
เราเห็น หมอชนะ เราหยิบเอามาใช้ได้อย่างไร้ขีดจำกัด
เราเห็น เราไม่ได้แค่หยิบ เรามีเหตุผลกำกับเสมอ
ข้อดี-ข้อด้อย วิธีหลบหลีก วิธีชดเชย
...
...
ยกเว้น เห็นหมี เราไม่เคยเห็น

อันนี้คือ Flutter เดี๋ยวจะหาว่าเราเขียนไม่เป็น
Code
import 'package:flutter/material.dart'; //พิมพ์ stl มันจะสร้างให้อัตโนมัติ class Register extends StatefulWidget { @override _RegisterState createState() => _RegisterState(); } class _RegisterState extends State<Register> { //explicit //Method Widget registerButtion() { return IconButton( icon: Icon(Icons.cloud_upload), onPressed: () { print("you click upload"); }, ); } Widget nameText() { return TextFormField( style: TextStyle(color: Colors.purple), decoration: InputDecoration( icon: Icon( Icons.face, color: Colors.purple, size: 48.0, ), labelText: 'Display Name', labelStyle: TextStyle( color: Colors.purple, ), helperText: "Type your nick name", helperStyle: TextStyle( color: Colors.purple, fontStyle: FontStyle.italic, ), ), ); } Widget emailText() { return TextFormField( keyboardType: TextInputType.emailAddress, style: TextStyle(color: Colors.green), decoration: InputDecoration( icon: Icon( Icons.email, color: Colors.green, size: 48.0, ), labelText: 'Display email', labelStyle: TextStyle( color: Colors.green, ), helperText: "Type your email", helperStyle: TextStyle( color: Colors.green, fontStyle: FontStyle.italic, ), ), ); } Widget passwordText() { return TextFormField( style: TextStyle(color: Colors.blue), decoration: InputDecoration( icon: Icon( Icons.lock, color: Colors.blue, size: 48.0, ), labelText: 'Password', labelStyle: TextStyle( color: Colors.blue, ), helperText: "Type your password more 4 charactor", helperStyle: TextStyle( color: Colors.blue, fontStyle: FontStyle.italic, ), ), ); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Register"), actions: <Widget>[registerButtion()], ), body: ListView( padding: EdgeInsets.all(30.0), children: <Widget>[ nameText(), emailText(), passwordText(), ], ), ); } }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2021-03-02 07:18:00 By : ผ่านมา
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : C# ASP.NET Core MVC ช่วยดูหน่อยครับว่าใช้ค่า ConnectionStrings ถูกไม๊ ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่