|
(C#) .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
ให้ใส่คำสั่งดังต่อไปนี้
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Drawing;
using System.Windows.Forms;
using System.Drawing.Imaging;
using System.Data;
using System.Data.SqlServerCe;
namespace ConsoleApplication
{
//***By https://www.thaicreate.com (mr.win) ***//
class Program
{
[STAThread]
static void Main(string[] args)
{
System.Threading.Thread t = new System.Threading.Thread(ThreadStart);
t.SetApartmentState(System.Threading.ApartmentState.STA);
t.Start();
}
private static void ThreadStart()
{
//*** Capture Web Page ***//
WebBrowser web = new WebBrowser();
web.ScrollBarsEnabled = false;
web.ScriptErrorsSuppressed = true;
string[] CmdLine = System.Environment.GetCommandLineArgs();
string strURL = CmdLine[1].ToString();
string fileName = DateTime.Now.ToString("ddMMyyyyHHmmss") + ".jpg";
web.Navigate(strURL);
while (web.ReadyState != System.Windows.Forms.WebBrowserReadyState.Complete)
System.Windows.Forms.Application.DoEvents();
System.Threading.Thread.Sleep(1500);
int width = web.Document.Body.ScrollRectangle.Width;
int height = web.Document.Body.ScrollRectangle.Height;
web.Width = width;
web.Height = height;
System.Drawing.Bitmap bmp = 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 ***//
SqlCeConnection myConnection = default(SqlCeConnection);
//*** 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();
SqlCeCommand myCommand = myConnection.CreateCommand();
myCommand.CommandText = "INSERT INTO [mytable] ([sitename], [picture]) VALUES " + " ('" + strURL + "','" + fileName + "' ) ";
myCommand.CommandType = CommandType.Text;
myCommand.ExecuteNonQuery();
myConnection.Close();
Console.WriteLine("Capture Finish.");
}
}
}
การเพิ่ม 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 |
|
|
|
|
|
|
|
-->
|
|
|