แสดงบทความที่มีป้ายกำกับ .Net Windows Applications แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ .Net Windows Applications แสดงบทความทั้งหมด

3 ตุลาคม 2555

สถาปัตยกรรมเทียร์ (Tier)

Tier คำนี้เมื่อแปลออกมาจะแปลได้ว่า "ชั้น"
Tier ในวงการ Software ก็มีความหมายคล้ายกัน สำหรับท่านที่ยังไม่เข้าใจขอแนะนำง่ายๆ โดยให้มองว่า "ชั้น" นั้นเป็นนามธรรม เมื่อนำมาใช้ในวงการ Software แล้ว จำเป็นต้องสร้างนามธรรมนั้นเป็นภาพลักษณ์ขึ้นมา
นิยามเฉพาะเจาะจงของ Tier ก็คือ "การรับ-ส่งข้อมูลในชั้นต่างๆ" นั่นเอง มักจะใช้คำว่า Tier กับ Software ทาง Business solution ที่มีระบบเครือข่าย มี Database Server ผู้เขียนจะจำแนกสถาปัตยกรรมเทียร์เป็น 3 แบบ ให้เห็นความแตกต่างอย่างชัดเจน


  1. 2 Tier
  2. 3 Tier
  3. Multi-tier

19 กันยายน 2555

IIS is not a valid Win32 application (Windows x64)

การแก้ไข IIS ไม่สามารถรันเว็บได้บนเครื่อง 64 บิท x64

 ขึ้น is not a valid Win32 application
 
 

20 สิงหาคม 2555

การสร้าง PrimaryKey ให้ DataTable

'-------------------------------------------------------------------------
'สร้าง PrimaryKey แบบหนึ่ง Key
Dim dtTempCal As New DataTable
dtTempCal.Columns.Add("Data", GetType(String))
dtTempCal.Columns.Add("Key_No", GetType(String))

dtTempCal.PrimaryKey = New DataColumn() {dtTempCal.Columns("Key_No")}

'การเรียกใช้งานเพื่อ update data ใน DataTable แบบหนึ่ง Key
Dim drNewrow as DataRow
drNewrow = dtTempCal.NewRow
drNewrow = dtTempCal.Rows.Find("001") 'Key_No = "001"
drNewrow.BeginEdit()
drNewrow("Data") = "Test"
drNewrow.EndEdit()

-------------------------------------------------------------------------
'สร้าง PrimaryKey แบบมากกว่าหนึ่ง Key
Dim dtTempCal2 As New DataTable
dtTempCal2.Columns.Add("Data", GetType(String))

Dim primaryKey(1) As DataColumn
primaryKey(0) = dtTempCal2.Columns.Add("Key_No1", GetType(String))
primaryKey(1) = dtTempCal2.Columns.Add("Key_No2", GetType(String))
dtTempCal2.PrimaryKey = primaryKey

'การเรียกใช้งานเพื่อ update data ใน DataTable แบบมากกว่าหนึ่ง Key
Dim oKey(1) As Object
oKey(0) = "001"
oKey(1) = "002"
drNewrow = dtTempCal2.Rows.Find(oKey) 'Key_No1 = "001",'Key_No2 = "002"
drNewrow.BeginEdit()
drNewrow("Data") = "Test"
drNewrow.EndEdit()

11 เมษายน 2555

การใช้งาน Progress Bar VB.Net

Tips VB.NET2005 : Progress Bar กับ Database

Tips VB.NET2005 : Progress Bar กับ Database


วิธีการใช้ Progress Bar ในช่วงที่ดึงข้อมูลจากฐานข้อมูลลง Dataset

หลาย ๆ คนคงประสบปัญหาเวลาข้อมูลที่ Select ขึ้นมามีขนาดใหญ่ แล้วทำให้คนใช้ต้องรอนานมากกว่าจะ Fill ข้อมูลลง Dataset เสร็จ
ใน VB.NET 2005 นั้นมันมีแถม ProgressBar มา แต่การนำมาใช้ช่วงที่ Fill ลง Dataset นั้นทำไม่ได้โดยตรง แต่ก็ยังมีวิธีอ้อม ๆ ซึ่งตัว Code นั้นก็ไม่ยากเกินกำลัง

มาลองศึกษาดูนะครับ

The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine (on Windows 64 bits)

The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine (on Windows 64 bits)


สาเหตุที่มันเกิด Error เพราะว่าวินโดวส์ 64 บิต ไม่สนับสนุน Jet.OLEDB นั่นเอง
1. เปิดไฟล์นามสกุล (*.csproj, *.vbproj, etc..) ด้วย notepad นะครับ โดยไฟล์ที่เปิด จะมีการจัดเก็บแบบ XML
2. หาส่วนที่เขียนว่า <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> and <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
โดยส่วนนี้จริง ๆ แล้ว อาจจะมีแค่ <PropertyGroup> เท่านั้น (ตัวนี้ไฟล์ของผม)
3. ให้หาส่วนชื่อ PlatformTarget ถ้าไม่มีให้เพิ่มข้อมูล <PlatformTarget>x86</PlatformTarget> เข้าไปเลยนะครับ
4. บันทึกและปิดโปรแกรม Notepad.
5. โหลดโปรเจคขึ้นมาใหม่ แล้วคอมไพล์เพื่อทดสอบ

ในตัวโปรแกรมที่ทำ หลังจากตอนแรกหา Database ไม่เจอเพราะ Jet.OLEDB ไม่ซัพพอร์ท พอเพิ่ม TAG นี้เข้าไป ก็หา DB เจอ

เนื้อที่สรุปมา อ้างอิงจากเวป

http://social.msdn.microsoft.com/Forums/en-US/adodotnetdataproviders/thread/45aa44dd-0e6f-42e5-a9d6-9be5c5c8fcd1

1 เมษายน 2555

VB.NET Coding Guidelines

VB.NET Coding Guidelines

by Cory Smith

Table of Contents
1. Introduction
2. Style Guidelines
2.1 Tabs and Indenting
2.2 Option Explicit / Option Strict
2.3 Block Formatting
2.4 Single line statements
2.5 Commenting
2.5.1 Copyright notice
2.5.2 Documentation Comments
2.5.3 Comment Style
2.6 Spacing
2.7 Attributes
2.8 Naming
2.9 Naming Conventions
2.9.1 Interop Classes
2.10 File Organization
2.11 Doing things the Visual Basic .NET Way
2.12 Microsoft.VisualBasic.Compatibility
2.13 Other Considerations
2.14 Special Thanks

24 สิงหาคม 2554

ฟังก์ชันหารและการปัดทศนิยม


ฟังก์ชันหารไม่เอาเศษมีสามตัวครับ คือ round(), ceil(), floor() แตกต่างยังไงดู samples เลยครับ

1. Math.Round(2.5) = 3 - ปรับให้ถ้าเกิน 0.5 ครับ
2. Math.Ceiling(2.5) = 3 ปรับขึ้นตลอดครับ
3. Math.Floor(2.5) = 2 ปรับลงตลอดครับ
4. 4 mod 3 = 1 หารเอาเศษ

19 สิงหาคม 2554

การใช้งาน AddHandler (ตัวอย่าง TextBox ให้รับค่าตัวเลขอย่างเดียว)

    Sub AddCurrencyTextBox()
        Try
            'เมื่อเกิดการพิมพ์ค่าเข้า Textbox ให้เรียก Function  keypressed
            AddHandler TextBox1.KeyPress, AddressOf keypressed
            AddHandler TextBox2.KeyPress, AddressOf keypressed
        Catch ex As Exception
            Throw ex
        End Try
    End Sub

    Public Sub keypressed(ByVal o As [Object], ByVal e As KeyPressEventArgs)
        e.Handled = NumbericOnly(o, e.KeyChar)
    End Sub 'keypressed

    Public Function NumbericOnly(ByVal TargetTextBox As Windows.Forms.TextBox, ByVal CurrentChar As Char, Optional ByVal bIsUseSign As Boolean = True) As Boolean
        Try
            If IsNumeric(CurrentChar) = True Then
                Return False
            End If

            If CurrentChar = vbBack Then
                Return False
            End If

            If Convert.ToString(CurrentChar) = "+" OrElse Convert.ToString(CurrentChar) = "-" Then
                If bIsUseSign Then
                    Return False
                Else
                    Return True
                End If
            End If

            Return True
        Catch ex As Exception
            Throw ex
        End Try

    End Function

29 กรกฎาคม 2554

การใช้งาน Enum และ CONSTRUCTOR

1. การประกาศ Enum และ CONSTRUCTOR

Public Class Class1

Private objStatus As enuOperation_Type
Public Enum enuOperation_Type
ADDNEW
UPDATE
DELETE
SEARCH
NULL
End Enum

Public Sub New(ByVal Operation_Type As enuOperation_Type)
MyBase.New()
'This call is required by the Windows Form Designer.
' InitializeComponent() 'ถ้าเป็น windows Form ใช้งานตรงนี้

'Add any initialization after the InitializeComponent() call
objStatus = Operation_Type
End Sub

End Class


2. การใช้งาน

Private Sub testEnum_CONSTRUCTOR()
        Try
            Dim objcls As New Class1(Class1.enuOperation_Type.ADDNEW)
        Catch ex As Exception
            Throw ex
        End Try
End Sub

การใช้งาน app.config

27 กรกฎาคม 2554

ติดตั้ง ASP.NET

ไปที่ C:\WINNT\Microsoft.NET\Framework\v2.0.xxxxx แล้วกดรัน
จะขึ้นหน้าต่าง Dos แล้วพิมพ์ตามข้างล่างแล้ว Enter

aspnet_regiis –i


26 มีนาคม 2554

การ Set CultureInfo ( ทำให้ทั้งระบบใช้รูปแบบเวลาเดียวกัน )



            หลายคนมีปัญหาเรื่องการที่เวลาบันทึกข้อมูลลงที่ฐานข้อมูลแล้วระบบบอกว่ารูปแบบของเวลาไม่ถูกต้อง ปัญหาเหล่านั้นจะหมดไป เมื่อเราทำการ Set CultureInfo แล้วระบบเราจะใช้รูปแบบเวลานั่นทั้งโปรแกรม
        * แต่ถ้ามีการเปิด Thread ใหม่ต้องทำการ Set ค่านี้ใหม่ด้วยใน Function นั้น ๆ เช่น Function ที่ใช้ BackgroundWorker ต้องทำ Set CultureInfo ใน Function ใหม่ด้วยจ้า

Imports System.Globalization
Imports System.Threading

Private Sub Login_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Try
        Thread.CurrentThread.CurrentCulture = New CultureInfo("en-GB")
    Catch ex As Exception
        W_MSG_Error(ex.Message)
    End Try
End Sub