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

Registered : 107,793

HOME > .NET Framework > Forum > WinApp C# จากโค้ดประมาณนี้ ผมอยากวิธีให้มันเขียนให้น้อยๆลง กว่านี้ ได้ไม๊ครับ





 

WinApp C# จากโค้ดประมาณนี้ ผมอยากวิธีให้มันเขียนให้น้อยๆลง กว่านี้ ได้ไม๊ครับ

 



Topic : 133808



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



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



คือผม ได้ เขียนคลาส ฟอร์มแม่ มาเป็นต้นฉบับแล้ว ประมาณนี้ครับ

1

โค้ดคลาสแม่ครับ

2

ลูกเอาไปใช้ครับ

3

คลาสลูก

4


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



Tag : .NET, Win (Windows App), C#







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2019-06-27 00:07:29 By : lamaka.tor View : 316 Reply : 28
 

 

No. 1



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



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


เวลาผมเขียน winapp ผมไม่เขียนให้มันผูกกัน ให้ยุ่งยากครับ
แต่ ผมจะใช้ list เก็บ form pointer แยกเป็น form ไปเลยครับ
เวลา create new form ก็แค่ส่ง พารามิเตอร์ เข้าไปในแต่ละ form
ทำงานอิสระ แยกกันไปเลย








ประวัติการแก้ไข
2019-06-27 08:27:07
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 08:24:06 By : Chaidhanan
 


 

No. 2



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



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

ตอบความคิดเห็นที่ : 1 เขียนโดย : Chaidhanan เมื่อวันที่ 2019-06-27 08:24:06
รายละเอียดของการตอบ ::
แต่ละฟอร์ม ถ้าตามที่ผมเข้าใจผมคิดว่ามัน อิสระ นะครับ
คือที่ผมจะทำคือ เหมือนเราดึง texbox button มาใช้งาน ประมาณนั้นครับ

แต่ทีนี้ texbox button มีการเพิ่ม ตัวแปร ที่ในคลาสหลักไม่มี
แล้ว texbox 20-50 ตัว ก็มีตัวแปรที่ไม่เท่ากัน

จุดนั้นแหละครับที่ผมอยากแก้
คือมันเป็นโค้ด ซ้ำๆ หลายคลาสมากครับ

อย่างโค้ดด้านบน ถ้าผมเพิ่มโค้ดอย่างอื่นเข้าไป หรือ ลบโค้ด ออกไป
554

ลืมรูปครับ
เราก็ต้องตามแก้ ทุกคลาสที่มันเหมือนๆกัน เพื่อให้ออกมาเหมือนกัน ครับ
ผมจึงมองว่ามันไม่ใช่ความสะดวกในการเขียนโปรแกรมครับ
เพราะต้องมาแก้ ซ้ำๆ ทีละ20-50 คลาส ครับ




ประวัติการแก้ไข
2019-06-27 10:32:45
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 09:42:27 By : lamaka.tor
 

 

No. 3



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



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


อ้อ ต้องการเรียกใช้่บาง function ที่ไม่มีอยู่ใน templeate form

ลองศึกษาเรื่อง callback function เพิ่มเติมครับ
https://docs.microsoft.com/en-us/dotnet/framework/interop/how-to-implement-callback-functions

และ การส่งผ่าน callback function
https://stackoverflow.com/questions/51601069/how-to-pass-a-callback-method-to-another-class-in-c-sharp


ประวัติการแก้ไข
2019-06-27 10:29:24
2019-06-27 10:29:52
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 10:18:41 By : Chaidhanan
 


 

No. 4

Guest


@TOR

ปัญหาของคุณผมเคยตอบไปเมื่อหลายปีที่ผ่านมา ณ. www.greatefrirnds.biz (ไม่แน่ใจว่า ผมเขียนถูกไหม?)
ตอนนั้นถ้าผมใส่สูทรผูกไทร์ เป็นผู้ดี ความคิดเห็นของผมก็ยังอยู่
แต่ถ้าผมใส่กางเกงในตัวเดียว/บางครั้งก็ไม่ใส่ และออกมาเดินเพ่นพ่านนอกบ้าน (เขาลบทิ้งทันที)
--- ตอนนั้นคนที่ถามเขาใช้ Visual FoxPro มา Call .NET Framework 4.x)

ผมจำไม่ได้ว่ากระทู้ไหน? และจำไม่ได้ว่าตอนนั้นผมชื่ออะไร? +55555

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 10:20:50 By : หน้าฮี
 


 

No. 5

Guest


และถ้าคุณอยากเข้าใจอย่างถ่องแท้ ลองดูตัวนี้ครับ หลักการเดียวกัน
Quote:
https://www.w3schools.com/angular/default.asp

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 10:34:47 By : หน้าฮี
 


 

No. 6

Guest


Code (VB.NET)
    Public Class Form1
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim db As New dbBigDataContext
            Dim kUnit = db.Units
            Dim frmUnitCode As New BasicCode2(kUnit)
            frmUnitCode.Show()
        End Sub
    End Class
    Public Class BasicCode2
        Private kTargetTable As Data.Linq.Table(Of Units)
        Sub New(ByVal kTableName As Data.Linq.Table(Of Units))
            kTargetTable = kTableName
            Call LoadData()
        End Sub
        Private Sub LoadData()
            '/// ตรงนี้ยังติดปัญหาเรื่อง การเปลียนค่าชื่อตารางทีต้องการ ในที่นี้คือ Units เป็นอืน ๆ เช่น Categories , Colors ว่าจะทำอย่างไร ///
            Dim kBasicCodes = From k In kTargetTable Select k.UnitCode, k.Description
                              Order By UnitCode
            'code C R U D
            dgvBasicCode.DataSource = kBasicCodes.ToList()
        End Sub
    End Class

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 10:39:25 By : หน้าฮี
 


 

No. 7



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



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

ตอบความคิดเห็นที่ : 6 เขียนโดย : หน้าฮี เมื่อวันที่ 2019-06-27 10:39:25
รายละเอียดของการตอบ ::

กนณที่ data เป็นตัวอื่นหรือ ใช้กับฟอร์มอื่น
เราก็ต้องเอาโค้ดนี้ไปเขียนลงทุกฟอร์ม เหมือนเดิมใช่ไม๊ครับ

ถ้าผมมี ฟอร์ม ซัก 3 ฟอร์มที่มันมีลักษณะ เหมือนกัน ยกเว้น ชื่อ data
เช่น

1

2

3

ผมอยากจะเรียกใช้ data โดยผ่าน แค่ฟอร์มเดียว
และ เขียนโค้ดให้น้อยๆ ได้ไม๊ครับ

ที่ผมทำได้ก็แค่สร้าง ฟอร์มหลักขึ้นมา

4

แล้วก็ให้เอาไปใช้กับฟอร์มลูก
แต่ปัญหาคือ เวลา เราแก้ที่ ฟอร์มลูก เราก็ต้องมาแก้ ฟอร์มลูกทุกตัว
ถ้ามี 50 ฟอร์ม ก็แก้ทั้ง 50 ฟอร์ม กันเลยทีเดียว

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 12:40:08 By : lamaka.tor
 


 

No. 8



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



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


ดูคห 3 ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 13:19:13 By : Chaidhanan
 


 

No. 9



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



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

ตอบความคิดเห็นที่ : 8 เขียนโดย : Chaidhanan เมื่อวันที่ 2019-06-27 13:19:13
รายละเอียดของการตอบ ::
ถ้าประเภทตัวแปรไม่เหมือนกันต้องทำยังไงครับ

9

10

11


12



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 13:47:23 By : lamaka.tor
 


 

No. 10



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



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


ลองส่งเป็นค่าที่จำเป็นไปที่ form นั้นไหมครับ
จากหน้าจอที่ให้มาก็ส่ง
ข้อมูลของ row ที่จะแก้ไป (อาจส่งไปเป็น datatable / dataset / datarow / array ไปก็ได้)
แล้วส่ง ชือ table ไป

ปุ่ม save ก็แค่เขียนคำสั่ง update ชื่อtable where ตาม id
สั่ง execute ก็น่าจะได้แล้วครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 14:01:05 By : fonfire
 


 

No. 11

Guest


"ยังยืนยัน นอนยันให้ไปอ่านเรื่อง OOP จากนั้น ก้ไป Dapper หรือ ไม่ก็ EF ลากวางเลิกได้แล้ว"

หรือไม่ก็ตัวอย่างบางตอนนะ สร้างโปรเจ็คชื่อ Vol.SampleForm

แล้วสร้างฟอร์มชื่อ frmBase หน้าตาตามนี้ หรือไม่ก็ได้เด้อ

frmBase


โค้ดข้างใน

Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Vol.SampleForm
{
    public partial class frmBase : Form
    {
        private string childObj;
        public frmBase(string _childObj)
        {
            InitializeComponent();
            this.childObj = _childObj;
            this.Text = _childObj;
            this.label1.Text = _childObj;

        }
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            this.button1.Click += new EventHandler(Save);


        }
        private void Save(object sender, EventArgs e)
        {
            string objectToInstantiate = "Vol.SampleForm."+this.childObj+ ", Vol.SampleForm";

            var objectType = Type.GetType(objectToInstantiate);

            var instantiatedObject = Activator.CreateInstance(objectType) as ITestClass;

            // set a property value
            instantiatedObject.Name = "Test Name";

            // get a property value
            var name = instantiatedObject.Name;

            // call a method - this outputs "My name is MyNewTestClass"
            //Console.Write(instantiatedObject.DoSpecialThing());
            MessageBox.Show(instantiatedObject.DoSpecialThing());


        }

        private void button2_Click(object sender, EventArgs e)
        {
            string objectToInstantiate = "Vol.SampleForm." + this.childObj + ", Vol.SampleForm";

            var objectType = Type.GetType(objectToInstantiate);

            var instantiatedObject = Activator.CreateInstance(objectType) as ITestClass;

            // set a property value
            instantiatedObject.Name = "Test Name";

            // get a property value
            var name = instantiatedObject.Name;

            // call a method - this outputs "My name is MyNewTestClass"
            //Console.Write(instantiatedObject.DoSpecialThing());
            MessageBox.Show(instantiatedObject.Save());
        }
    }
    public interface ITestClass
    {
        int Id { get; set; }
        string Name { get; set; }
        string DoSpecialThing();

        string Save();
    }
    public class Product : ITestClass
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public string DoSpecialThing()
        {
            return "My name is Product";
        }
        public string Save()
        {
            //Code บลาๆๆๆๆๆๆ
            return "Save Product เด้อ";
        }
    }
    public class Unit : ITestClass
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public string Save()
        {
            //Code บลาๆๆๆๆๆๆ

            return "Save Unit เด้อ";

        }
        public string DoSpecialThing()
        {
            return "My name is Unit";
        }
    }
}



อีกนิด
สร้างอีกฟอร์ม คือฟอร์มที่จะเรียกใช้ชื่อ frmMain ก็ได้
และลองสร้าง Button 1 อัน แล้วโค้ดภายในก็ประมาณนี้

Code (C#)
 private void button1_Click(object sender, EventArgs e)
        {
         
            var frm = new frmBase("Product");
            frm.Show();

            
            frm = new frmBase("Unit");
            frm.Show();
        }



แล้วลองรันดู
ถ้ายังไม่ตรงวัตถุประสงค์ ก็ขออภัยด้วยเด้อครับผม

หรือไม่ก็เขาไปอ่านที่นี้ก็ได้ครับ

https://jeremylindsayni.wordpress.com/2019/02/11/instantiating-a-c-object-from-a-string-using-activator-createinstance-in-net/
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 14:52:47 By : บัญดิษฐ
 


 

No. 12

Guest


เสริมอีกนิดครับ เดียวจะไม่ใช่ OOP
แก้ไขหน้า frmBase นิดหน่อย
Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Vol.SampleForm
{
    public partial class frmBase : Form
    {
        private string childObj;
        public frmBase(string _childObj)
        {
            InitializeComponent();
            this.childObj = _childObj;
            this.Text = _childObj;
            this.label1.Text = _childObj;

        }
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            this.button1.Click += new EventHandler(Save);


        }
        private void Save(object sender, EventArgs e)
        {
            string objectToInstantiate = "Vol.SampleForm."+this.childObj+ ", Vol.SampleForm";

            var objectType = Type.GetType(objectToInstantiate);

            var instantiatedObject = Activator.CreateInstance(objectType) as ITestClass;

            // set a property value
            instantiatedObject.Details.Name = "Test Name";

            // get a property value
            var name = instantiatedObject.Details.Name;

            // call a method - this outputs "My name is MyNewTestClass"
            //Console.Write(instantiatedObject.DoSpecialThing());
            MessageBox.Show(instantiatedObject.DoSpecialThing());


        }

        private void button2_Click(object sender, EventArgs e)
        {
            string objectToInstantiate = "Vol.SampleForm." + this.childObj + ", Vol.SampleForm";

            var objectType = Type.GetType(objectToInstantiate);

            var instantiatedObject = Activator.CreateInstance(objectType) as ITestClass;

            // set a property value
            instantiatedObject.Details.Name = "Test Name";

            // get a property value
            var name = instantiatedObject.Details.Name;

            // call a method - this outputs "My name is MyNewTestClass"
            //Console.Write(instantiatedObject.DoSpecialThing());
            MessageBox.Show(instantiatedObject.Save());
        }
    }
    public interface ITestClass
    {
        TempDetails Details { get; set; }
      
        string DoSpecialThing();

        string Save();
    }
    public class Product : ITestClass
    {
        public TempDetails Details { get; set; } = new TempDetails();

        public string DoSpecialThing()
        {
            return "My name is Product";
        }
        public string Save()
        {
            //Code บลาๆๆๆๆๆๆ
            return "Save Product เด้อ";
        }
    }
    public class Unit : ITestClass
    {
        public TempDetails Details { get; set; } = new TempDetails();


        public string Save()
        {
            //Code บลาๆๆๆๆๆๆ

            return "Save Unit เด้อ";

        }
        public string DoSpecialThing()
        {
            return "My name is Unit";
        }
    }
    public class TempDetails
    {
        public int Id { get; set; }

        public string Name { get; set; }
    }
}



หรือไม่ก็ง่ายก็ตามคุณ FONFIRE
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 15:15:07 By : บัญดิษฐ
 


 

No. 13



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



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

ตอบความคิดเห็นที่ : 11 เขียนโดย : บัญดิษฐ เมื่อวันที่ 2019-06-27 14:52:47
รายละเอียดของการตอบ ::
แบบนั้นมันก็มีค่าเท่ากันอ่าท่าน

คือถ้าเรามี เพิ่มอีก 10 data เราก็ต้องเพิ่ม ITestClass แล้วก็ต้องมาเขียนโค้ดเพิ่ม อีก 10 รอบ
ถ้าผมแก้ โค้ด class Product ซักอย่างหนึ่ง
ผมก็มาไล่แก้ อีก 11 คลาส ที่เหลือ เพื่อให้ คล้ายๆกัน ใช่ไม๊ครับ

เช่น


Code (C#)
 public class Product : ITestClass
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public string DoSpecialThing()
        {
            return "My name is Product";
        }
        public string Save()
        {
            //Code บลาๆๆๆๆๆๆ

            return "Save Product เด้อ";
        }
    }

 public class Product : ITestClass
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public string DoSpecialThing()
        {
            return "My name is Product";
        }
        public string Save()
        {
            //Code บลาๆๆๆๆๆๆ
           
          return "Save Product เด้อ";
        }
    }


ผมอยกเพิ่ม MessageBox.Show("Save Product เด้อ"); เข้าไป ผมก็ต้องมาคอยเพิ่มทั้งทุกคลาส แบบนี้

Code (C#)
 public class Product : ITestClass
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public string DoSpecialThing()
        {
            return "My name is Product";
        }
        public string Save()
        {
            //Code บลาๆๆๆๆๆๆ
            MessageBox.Show("Save Product เด้อ");
            return "Save Product เด้อ";
        }
    }

 public class Product : ITestClass
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public string DoSpecialThing()
        {
            return "My name is Product";
        }
        public string Save()
        {
            //Code บลาๆๆๆๆๆๆ
           
          MessageBox.Show("Save Product เด้อ");
          return "Save Product เด้อ";
        }
    }


ถ้าผมลบ MessageBox.Show("Save Product เด้อ"); ออก ผมก็ต้องตามลบ ทั้ง 12 คลาส ออกให้หมดเช่นกัน ใช่ไม๊ครับ

มันเหมือนว่าจะแก้ง่ายๆ คลาสเนื้อหามันก็คล้ายๆ แต่ผมก็นึกไม่ออกว่าจะแก้ยังไง ครับ



แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 15:22:11 By : lamaka.tor
 


 

No. 14



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



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

ตอบความคิดเห็นที่ : 10 เขียนโดย : fonfire เมื่อวันที่ 2019-06-27 14:01:05
รายละเอียดของการตอบ ::
แต่ก่อนผมก็เคยส่งค่าไปแบบนั้นครับ ปรากฎว่า แก้ database บ่อย หลังๆลืมๆว่า ต้องแก้โค้ด ฟอร์มไหน คลาสไหนมั่ง
หลังๆมาเลยกลับมาใช้ datawizard เหมือนเดิมครับ มันง่าย เพิ่ม พารามิเตอร์ง่ายดีครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 15:24:23 By : lamaka.tor
 


 

No. 15



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



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

คือที่พยายาม ยึดรูปแบบการเขียนโปรแกรมง่ายๆ เพราะว่าในแล็บ ไม่มี IT ครับ
อย่างน้อยถ้าผมลาออกไปปลูกผัก ก็ยังพอจะมีคนมาจับงานแทนได้

ผมจึงลดโค้ดที่ต้องใช้ ความซับซ้อน หรือ ผลักงานที่ซับซ้อนมากองไว้จุดเดียว ไม่ว่าจะสร้าง ไลบรารี่ขึ้นมา หรือสร้างคลาสขึ้นมา

อีกอย่างคือ เวลาผมเอาโค้ดไปแจกให้คนอื่นใช้งาน หรือ ฝึกเขียนต่อ เขาก็จะได้เขียนง่าย ครับ
ที่ผมใช้ datawizard เป็นหลัก เพราะจะให้มองว่า การเขียนโปรแกรมไม่จำเป็นต้องมาศึกษา sql ขั้นสูง
ขอแค่ตีความต้องการออกเราก็สามารถเขียนโปรแกรมเชื่อมฐานข้อมูลได้ง่ายๆ โดยที่ ไม่ต้องรู้ซะด้วยซ้ำว่า select * from table มันคืออะไร

และโค้ดที่เขียนก็จะพยายาม เขียนให้มันง่ายๆเข้าไว้ สั้นเข้าไว้ครับ

อาทิตย์ ก่อน Auditor มาตรวจแล็บเขาก็บ่น ว่าอยากได้ LIMS ซึ่่งมันราคาแพง
ทั้งๆที่ หากเราจะเจาะจงแค่ผลแล็บมันก็ไม่ยาก
แต่คนที่ทำงานแล็บต้องรู้ก่อนว่าการจะเขียนมันควรเริ่มจากจุดไหนบ้าง
ซึ่งผมอยากจะทำให้จุดนั้นมันง่าย และเรียนรู้ไม่ยากจนเกินไป ครับ


ประวัติการแก้ไข
2019-06-27 15:38:46
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 15:32:12 By : lamaka.tor
 


 

No. 16

Guest


@บัญดิษฐ, @fonfire, @Chaidhanan, @TOR


กระผมหน้าฮี ขออนุญาติใส่สูตรผูกไทร์ พูดคุยกับทุกฯท่าน (นานมากแล้วที่ผมไม่รู้สึกเช่นนี้) ก่อนอื่นผมขอเล่าความเป็นไปเป็นมาของชื่อหน้าฮี

โดยสังเขปดังนี้

--- ผมเป็นคนที่กตัญญูและรู้คุณคน ตอนนั้นบิดาของผมทะเลาะกับมารดาของผม แล้วท่านหันมาเรียกผมว่า "ไอ้หน้าฮี" ตอนนั้นผมอยู่ ป.6 ผมจำได้


นี่คือที่มาที่ไป (ผมไม่เคยเล่าให้ฟังเลยนะ ที่นี่เป็นที่แรก เล่าโดยไม่ได้เงินสักบาทเดียว)


ผมอ่านที่คุณทุกฯท่าน เอิ้นว่ามา ทำให้ผมมีความสุข คลายความทุกข์



ขอบคุณมากฯครับ


จริงฯแล้วผมมีความในใจหลายฯฯฯอย่างที่จะแสดงออกมา แต่ว่า ณ. เวลานี้ผมไม่สะดวก และผมไม่อยากจะละเลยโอกาสแบบนี้


ปล. ถ้ามีโอกาสและผมสะดวก ผมอาจจะมาโต้แย้งเพื่อหาสิ่งที่ดีที่สุด ณ. เวลาปัจจุบัน (รวมอายุพวกเราแต่ละคนเข้าไปผมว่า น่าจะเกิน 300 ปี)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 15:34:08 By : หน้าฮี
 


 

No. 17

Guest


@TOR_CHEMISTRY, ALLS

ถ้าพวกคุณรู้ความจริง พวกคุณจะสงสารผม จนน้ำตาไหลไม่หยุดเลยเชียวแหละ

ผมเป็นพลทหารชั้นเลว ออกรบอยู่แนวหน้า อาวุธมีเพียงจอบและหัวใจ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 15:37:37 By : หน้าฮี
 


 

No. 18



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



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

ตอบความคิดเห็นที่ : 17 เขียนโดย : หน้าฮี เมื่อวันที่ 2019-06-27 15:37:37
รายละเอียดของการตอบ ::
ตัวโค้ด button ที่ท่านให้มาเมื่อ 2-3 ปีที่แล้ว ผมก็ยังใช้จนถึงทุกนี้เลยนะท่าน แถม เอาไปใช้กับ textbox และ datagrid ได้ดีด้วย


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 15:43:22 By : lamaka.tor
 


 

No. 19



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



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


ตอบความคิดเห็นที่ : 14 เขียนโดย : lamaka.tor เมื่อวันที่ 2019-06-27 15:24:23
รายละเอียดของการตอบ ::
หมายถึงเวลาที่เพิ่ม field แล้วลืมเพิ่มคำสั่ง update เหรอครับ
ถ้าอันนี้ที่เคยทำ ก็ใช้วิธีสร้างคำสั่ง update แบบ auto เลย
รับค่ามาเป็น datatable แล้วก็ loop ไปทุก field เพื่อสร้างคำสั่ง update

ถ้ามีการเพิ่ม filed หรือ แก้ไขชื่อ field จริง ๆ
เราก็ต้องมาแก้หน้า form อยู่ดีนะครับ
แต่ถ้า form มันเหมือนเดิมตลอด
ก็แสดงว่า field ที่เพิ่ม หรือ แก้ไข เวลาที่ทำ ก็ต้องทำเหมือนกันทุก table ใช่ไหมครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 15:57:39 By : fonfire
 


 

No. 20

Guest


จาก #17 ผมเล่าคร่าวฯ ความจริงก็ได้

ผมต้องไปเอาข้อมูลจาก UNIX มาบน LINUX (Migration) ที่สำคัญผมไม่มีเวลาศึกษา ผมไม่รู้ว่า ก ข ค ง มันเขียนอย่างไร?
ผมต้องไปตายเอาดาบหน้า ณ. หน้างานจริง


ฟ้าหลังฝน มันสำหรับคนอื่นฯ
แต่มันไม่ใช่ของผม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 16:10:17 By : หน้าฮี
 


 

No. 21



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



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


ตัวแปร ส่งผ่าน list ครับ จะส่งเป็นค่า หรือจะส่งเป็น pointer ก็ได้หมด
function callback ก็ส่งผ่าน list ได้ครับ จะส่งไปกี่ function ก็ได้
แล้ว อ้างอิง ลิสต์ เอา
อาจจะใช้ตำแหน่ง คู่ 0 2 4 6 ..... เก็บ type ข้อมูล
ตำแหน่งคี่ 1 3 5 7 เก็บ pointer ของ value

ให้เราสร้าง function callback ไว้ที่ class ที่เรียกใช้ template form
จะสร้าง กี่ function ก็ได้ list เก็บได้หมด

ใน template form
เราสามารถ เขียน override Create ได้ จะให้มันรับตัวแปรอะไรก็ได้
สร้างตัวแปร private มาเก็บ function callback สำหรับ Save , delete หรืออะไรก็ได้ว่าไป

ตัวอย่างก็ที่ผมส่งให้นั่นแหล่ะครับ แต่ตัวอย่างมันน้อยไปหน่อย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 16:27:18 By : Chaidhanan
 


 

No. 22



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



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

ตอบความคิดเห็นที่ : 21 เขียนโดย : Chaidhanan เมื่อวันที่ 2019-06-27 16:27:18
รายละเอียดของการตอบ ::
อ่อ.. ต้องส่ง เป็น string ไปเหมือนที่ท่าน fonfire บอกใช่ไม๊ครับ
เดี๋ยวอาจจะต้องรื้อ โค้ดเยอะนะครับ
ขอเก็บไว้ก่อน นะครับ เพราะงานนี้รีบ ๆหน่อย เลยต้องใช้ dataset ไปก่อนครับ




แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 16:47:48 By : lamaka.tor
 


 

No. 23



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



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


ตอบความคิดเห็นที่ : 22 เขียนโดย : lamaka.tor เมื่อวันที่ 2019-06-27 16:47:48
รายละเอียดของการตอบ ::
ไม่จำเป็นต้องเป็น string ครับ ตัวแปรทุกประเภทครับส่งได้หมด
จะใช้หรือไม่ใช้ก็ตามสดวกครับ


วิธีการส่ง parameter ถ้ามีเยอะผมจะส่งเป็น pointer list ครับ เพราะมันเป็น dynamic
แค่ไปเอาคลาส ครอบเอา ให้ถูกต้อง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 17:29:08 By : Chaidhanan
 


 

No. 24

Guest


ถ้ากระผมเดาไม่ผิด ความหมายของท่าน Chaidhanan
น่าจะประมาณนี้ใช่ไหมครับ
--- อันนี้เป็นการดึงข้อมูล Json
Code (JavaScript)
async function doAjax(args) {
    let result;

    try {
        result = await $.ajax({
            url: ajaxurl,
            type: 'POST',
            data: args
        });

        return result;
    } catch (error) {
        console.error(error);
    }
}

//Method 1
const stuff = await doAjax();

//Method 2
doAjax().then((data) => doStuff(data))

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 18:21:40 By : หน้าฮี
 


 

No. 25

Guest


ผมชอบความซุกซนของคุณ TOR
--- สิ่งนี้หายากมากฯ

ถ้าคุณ TOR เข้าใจในส่ิงที่คุณ บัญดิษฐ อธิบายมา มันก็จบ ณ.วันนั้น แต่ก็ไม่ใช่ ณ. วันนี้(ปัจจุบัน)

ปล. ผมไม่ได้ข้ามแค่ความสงสัย แต่ผมพยายามข้ามความต้องการของคนอื่นฯ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 18:32:38 By : หน้าฮี
 


 

No. 26

Guest


อันนี้ผมไม่ได้ยอ Admin ที่นี่ใจกว้างมาก มากเสียจนกระผมละอายใจตัวเอง
ผมไม่อาย และผมหน้าด้านพอ ที่จะขอโทษทุกทุกคน

ผมเป็นคนที่มีเหตุผลกำกับ
รู้ดี รู้ชั่ว อะไรควร อะไรไม่ควร


กระผมปรารนา อยากจะให้กระทุ้นี้เป็นตำนานของ www.thaicreate.com
ขอบคุณสำหรับทุกฯท่านครับ ที่มอบความสุขให้กับกระผม

... ของผมมีความหมาย และจะเป็นคุณมากเสียกว่าเป็นโทษ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 18:43:24 By : หน้าฮี
 


 

No. 27

Guest


@บัญดิษฐ, @fonfire, @Chaidhanan, @TOR

--- ผมมีโลกส่วนตัวอยู่ที่ [email protected] ถ้าคุณอยากจะด่าผมมาได้เลยครับตามสะดวก แต่ถ้าจะชมก็ไม่จำเป็ฯต้องมา


ณ. ที่แห่งนั้นของผม มีแต่ได้กลับไป ไม่มีเสีย และที่แห่งนั้นกระผมเป็นสุถาพชน ทุกฯ สถานะการณ์
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 19:01:21 By : หน้าฮี
 


 

No. 28



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



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

โอ๊วววววววววววววววววววววววววววว

งั้นเดี๋ยวขอแก้ CAR ตัวนี้ให้เสร็จก่อนนะครับ
รอบหน้าจะรื้อ ความรู้ และ โค้ด ใหม่ดูครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-06-27 19:53:45 By : lamaka.tor
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : WinApp C# จากโค้ดประมาณนี้ ผมอยากวิธีให้มันเขียนให้น้อยๆลง กว่านี้ ได้ไม๊ครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม , โปรแกรมเจ้ามือหวย

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