|    
         
        
          
            | 
			   
		 
		         
				
			
   
     
        .NET Console Application เขียนโปรแกรมบน Console Application ด้วย .NET Framework       | 
   
 	
				 | 
              | 
           
           
            |   | 
                            
 
               .NET Console Application  เขียนโปรแกรมบน Console Application ด้วย .NET Framework  โปรแกรมประเภท Console เป็นการเขียนโปรแกรมที่ไม่ต้องการผลลัพธ์ในรูปแบบของ GUI และต้องการสั่งให้ทำงานอย่างรวดเร็ว หรือ เสร็จสิ้นกระบวนการทำงานในทันที เช่น การเขียน Console Application เพื่อ อ่านไฟล์จากโฟเดอร์ที่กำหนด เข้าสู่ Database หรือการ Backup Database ไปยังที่ต่าง ๆ โดย Console Application จะสามารถสั่งให้ทำงานจากคำสั่งอื่นได้ เช่น สั่งการทำงานจาก Windows Task Schedule หรือจะสั่งรันจากหน้า Webpage (asp,asp.net,php) ผ่านคำสั่งของ shell script  แต่ที่เรามักผบเจอกันส่วนมากแล้วจะใช้การสั่งการทำงานผ่าน MS-DOS และยังสามารถพัฒนาโปรแกรมได้หลากหลายรูปแบบ 
 
สำหรับบทความนี้มีทั้งที่เป็นภาษา VB.NET และ C# ครับ สามารถเลือกอ่านได้ตามความถนัดได้เลย 
 
Framework : 1,2,3,4 
 
Language Code :   VB.NET || C# 
 
 
ในตัวอย่างนี้ผมได้ใช้ Tool ของ Visual Studio 2008 บน .NET Framework 3.5 
 
ให้เปิด Tool ขึ้นมาพร้อมกับ New Project 
 
     
 
 
ตัวอย่างต่อไปนี้จะเป็นการเขียนโปรแกรม Console Application เพื่อทำการ Capture หน้า web page โดยผู้ใช้จะทำการสั่งการทำงานด้วย 
 
Code 
ConsoleApplication.exe paramter  
 
เช่น 
 
Code 
ConsoleApplication.exe https://www.thaicreate.com  
 
ก็จะทำการสั่งการ Capture หน้า Web page ของเว็บไซต์ https://www.thaicreate.com แล้วเอาผลลัพธ์ที่ได้ บันทึกลงในฐานข้อมูลของ SqlServerCe 
 
หลังจากที่สร้าง New Application เสร็จแล้วจะมีการสร้างไฟล์ Default ขึ้นมาอัตโนมัติประมาณ 2-3 ไฟล์ ซึ่งในกรณีที่พัฒนาด้วย 
C# ไฟล์หลักจะชื่อ Program.cs 
VB.NET ไฟล์หลักจะชื่อ Module1.vb 
 
ให้ใส่คำสั่งดังต่อไปนี้ 
 
Imports System
Imports System.Data
Imports System.Windows.Forms
Imports System.Drawing.Imaging
Imports System.IO
Imports System.Data.SqlServerCe
Module Module1
    'By https://www.thaicreate.com (mr.win) '
    <STAThread()> _
    Sub Main(ByVal args As String())
        Dim t As New System.Threading.Thread(AddressOf ThreadStart)
        t.SetApartmentState(System.Threading.ApartmentState.STA)
        t.Start()
    End Sub
    Private Sub ThreadStart()
        '*** Capture Web Page ***//
        Dim web As New WebBrowser()
        web.ScrollBarsEnabled = False
        web.ScriptErrorsSuppressed = True
        Dim CmdLine As String() = System.Environment.GetCommandLineArgs()
        Dim strURL As String = CmdLine(1).ToString()
        Dim fileName As String = DateTime.Now.ToString("ddMMyyyyHHmmss") & ".jpg"
        web.Navigate(strURL)
        While web.ReadyState <> System.Windows.Forms.WebBrowserReadyState.Complete
            System.Windows.Forms.Application.DoEvents()
        End While
        System.Threading.Thread.Sleep(1500)
        Dim width As Integer = web.Document.Body.ScrollRectangle.Width
        Dim height As Integer = web.Document.Body.ScrollRectangle.Height
        web.Width = width
        web.Height = height
        Dim bmp As New System.Drawing.Bitmap(width, height)
        web.DrawToBitmap(bmp, New System.Drawing.Rectangle(0, 0, width, height))
        bmp.Save(Directory.GetCurrentDirectory() & "\Img\" & fileName, ImageFormat.Jpeg)
        bmp.Dispose()
        '*** Insert to Table ***//
        Dim myConnection As SqlCeConnection = Nothing
		'*** Current Application Path ***'
        'myConnection = new SqlCeConnection("Data Source =" + (System.IO.Path.GetDirectoryName( System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase ) + "\\Database1.sdf;"));
        myConnection = New SqlCeConnection("Data Source =" & ("C:\ConsoleApplication\ConsoleApplication\Database1.sdf;"))
        myConnection.Open()
        Dim myCommand As SqlCeCommand = myConnection.CreateCommand()
        myCommand.CommandText = "INSERT INTO [mytable] ([sitename], [picture]) VALUES  " & " ('" & strURL & "','" & fileName & "' ) "
        myCommand.CommandType = CommandType.Text
        myCommand.ExecuteNonQuery()
        myConnection.Close()
        Console.WriteLine("Capture Finish.")
    End Sub
End Module 
 
  
 
การเพิ่ม Database ให้เลือกใช้ Local ของ Database ได้เลยครับ เพื่อความสะดวก 
 
    
 
โดยคลิกขวาที่ Project -> Add -> New Item... 
 
 
      
 
เลือก Local Database พร้อมกับกำหนดชื่อไฟล์ของ Database ด้วย 
 
 
      
 
Database ถุกสร้างขึ้นมาแล้ว 
 
กรณีใช้ Database อื่น ๆ  สามารถอ่านได้ที่ 
- System.Data.OleDb สำหรับ Ms Access หรืออื่น ๆ ที่ผ่าน OleDb 
- System.Data.SqlClient สำหรับ Microsoft SQL Server 
- System.Data.OracleClient สำหรับ Oracle Database 
- MySql.Data.MySqlClient สำหรับ MySQL Database 
- System.Data.Odbc ใช้สำหรับ Database เกือบทุกประเภทที่ใช้งานบน Platform Windows 
 
 
 
 
การเพิ่ม Table 
 
     
 
ในส่วนของ Tab Server Explorer (ซ้ายมือของ Form) ให้เลือกที่ Database ที่ได้ทำการสร้างขึ้นมา และใน Sub ของ Table ให้คลิกขวาเลือก Create Table 
 
     
 
สร้างตารางชื่อ mytable และสร้างฟิวด์ขึ้นมา 3 ตัวคือ id,sitename,picture (id เป็น pk และ IdentityIncrement) 
 
 
     
 
สร้าง Table เรียบร้อยแล้ว 
 
 
     
 
ในการรันหรือ Debug โปรแกรม ถ้าต้องการใส่ Parameter Command line arguments ให้กับ Console Application  ให้คลิกขวาที่โปรเจค -> Properties 
 
 
     
 
ตรง Command line arguments ให้ใส่ parameter ที่ต้องการ  
 
 
     
 
สามารถสั่งรันได้ทันที 
 
 
     
 
หรือจะสั่งรันจาก MS-DOS โดย path ของโปรแกรมที่ถูก Build เพื่อ Debug จะอยู่ที่ 
 
C:\ConsoleApplication\ConsoleApplication\bin\Debug>ConsoleApplication.exe https://www.thaicreate.com  
 
 
     
 
เมื่อโปรแกรมเสร็จสิ้น 
 
     
 
ตัวอย่างไฟล์ที่ถูกสร้าง 
 
 
    
 
ตัวอย่าง Record ที่ถูก Insert เข้าไป       
 
บทความนี้เป็นเพียง Basic ในการสร้างเท่านั้น ซึ่งจะเป็นพื้นฐานในการเขียนโปรแกรมในรูปแบบอื่น ๆ  ต่อไป 
 
สามารถดาวน์โหลด Code ได้จากข้างล่างครับ                   
    
                		      
  
			
					
  
    |   | 
      | 
      | 
      | 
   
  
      | 
    
      
      
       | 
     | 
    
      
     | 
   
  
    |   | 
      | 
      | 
      | 
   
 
 
 | 
              | 
           
         
           
          
            
              
                  
                     | 
                   
                  
                    |   | 
                    By :  | 
                    
TC Admin					
					 | 
                   
                  
                    |   | 
                    Score Rating :  | 
                    - | 
                   
                  
                    |   | 
                    Create Date :  | 
                    2010-09-02 21:19:33 | 
                   
				  
                  
                    |   | 
                    Download :  | 
                    
                       No files                     | 
                   
                  
                    |   | 
                      | 
                      | 
                   
                | 
             
           
           
                  
		
	
         
        
        
       | 
     
   
 
		  
         | 
		
          
		   
		  
              
      
     |