VB.NET Export Text file ASCII ผ่าน IO.StreamWriter ภาษาไทยไม่ได้
Coding VB.NET
แสดงบทความที่มีป้ายกำกับ .Net Windows Applications แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ .Net Windows Applications แสดงบทความทั้งหมด
22 สิงหาคม 2561
19 มิถุนายน 2558
7 พฤศจิกายน 2555
Why is the ReportViewer Control not working on IIS 7 (ReportViewer ไม่ทำงาน rdlc)
ReportViewer Control toolbar appears but images do not display and JavaScript functionality is not available.
3 ตุลาคม 2555
สถาปัตยกรรมเทียร์ (Tier)
Tier คำนี้เมื่อแปลออกมาจะแปลได้ว่า "ชั้น"
Tier ในวงการ Software ก็มีความหมายคล้ายกัน สำหรับท่านที่ยังไม่เข้าใจขอแนะนำง่ายๆ โดยให้มองว่า "ชั้น" นั้นเป็นนามธรรม เมื่อนำมาใช้ในวงการ Software แล้ว จำเป็นต้องสร้างนามธรรมนั้นเป็นภาพลักษณ์ขึ้นมา
นิยามเฉพาะเจาะจงของ Tier ก็คือ "การรับ-ส่งข้อมูลในชั้นต่างๆ" นั่นเอง มักจะใช้คำว่า Tier กับ Software ทาง Business solution ที่มีระบบเครือข่าย มี Database Server ผู้เขียนจะจำแนกสถาปัตยกรรมเทียร์เป็น 3 แบบ ให้เห็นความแตกต่างอย่างชัดเจน
Tier ในวงการ Software ก็มีความหมายคล้ายกัน สำหรับท่านที่ยังไม่เข้าใจขอแนะนำง่ายๆ โดยให้มองว่า "ชั้น" นั้นเป็นนามธรรม เมื่อนำมาใช้ในวงการ Software แล้ว จำเป็นต้องสร้างนามธรรมนั้นเป็นภาพลักษณ์ขึ้นมา
นิยามเฉพาะเจาะจงของ Tier ก็คือ "การรับ-ส่งข้อมูลในชั้นต่างๆ" นั่นเอง มักจะใช้คำว่า Tier กับ Software ทาง Business solution ที่มีระบบเครือข่าย มี Database Server ผู้เขียนจะจำแนกสถาปัตยกรรมเทียร์เป็น 3 แบบ ให้เห็นความแตกต่างอย่างชัดเจน
- 2 Tier
- 3 Tier
- Multi-tier
19 กันยายน 2555
13 กันยายน 2555
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
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 นั้นก็ไม่ยากเกินกำลัง
มาลองศึกษาดูนะครับ
หลาย ๆ คนคงประสบปัญหาเวลาข้อมูลที่ 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. เปิดไฟล์นามสกุล (*.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 SmithTable 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
ฟังก์ชันหารและการปัดทศนิยม
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
2. การใช้งาน
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
27 กรกฎาคม 2554
ติดตั้ง ASP.NET
ไปที่ C:\WINNT\Microsoft.NET\Framework\v2.0.xxxxx แล้วกดรัน
จะขึ้นหน้าต่าง Dos แล้วพิมพ์ตามข้างล่างแล้ว Enter
จะขึ้นหน้าต่าง Dos แล้วพิมพ์ตามข้างล่างแล้ว Enter
aspnet_regiis –i
24 กรกฎาคม 2554
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
สมัครสมาชิก:
บทความ (Atom)







