Category Archives: C#

ASP.NET C#

วิธี Select Data เพื่อเอา String ไปใส่ค่า Textbox

string strConn = WebConfigurationManager.ConnectionStrings[“CPSConnectionString”].ConnectionString;
string sql = “SELECT Crop_ID FROM Crop WHERE (Agriculturist_ID ='” + Agri_IDTextbox.Text + “‘and Age_Rubber ='” + ageRubberstxt.Text + “‘)”;
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
SqlCommand com = new SqlCommand(sql, conn);
SqlDataAdapter sa = new SqlDataAdapter(com);
DataSet ds = new DataSet();
sa.Fill(ds);

for (int i = 0; i <= ds.Tables[0].Rows.Count – 1; i++)
{
for (int j = 0; j <= ds.Tables[0].Columns.Count – 1; j++)
{
if (j == 0)
{
cropID = ds.Tables[0].Rows[i][j].ToString();
}
}
}
conn.Close();

Code ShowMessageBox C# .Net

protected void ShowMessageBox(string message)
{
message = message.Replace(“\r\n”, “”);
message = message.Replace(“\\”, @”\\\\”);
message = message.Replace(“‘”, “\\'”);

string sJavaScript = “<sck [ript language=javascript>\n”;
sJavaScript += “alert(‘” + message + “‘);\n”;
sJavaScript += “</script>”;
ClientScript.RegisterStartupScript(Page.GetType(), “MessageBox”, sJavaScript);
}

 

เวาเรียกใช้ก็ ShowMessageBox(“Test”) แค่นี้ก็ได้  MessageBox คอย Alert เเล้วครับ

Code Import Excel C#

protected string CurrentPage
{
get
{
System.IO.FileInfo fileInfo = new System.IO.FileInfo(this.Page.Request.PhysicalPath);
return fileInfo.Name;
}
}
private OleDbConnection exConn;//ติดต่อ Excel
private DataTable dt = null;//Table เก็บข้อมูล Excel
private string strConn;

protected void Page_Load(object sender, EventArgs e)
{

if (!Page.IsPostBack)
{
SetHeader(“อัพโหลดข้อมูล”);

}
}
protected void SetHeader(string header)
{
Label lblHeader = this.Master.FindControl(“lblHeader”) as Label;
lblHeader.Text = header;
}
protected void Button1_Click(object sender, EventArgs e)
{
GridView1.Visible = false;
Label5.Text = “”;
string file;
if (FileUpload1.HasFile)
{
file = FileUpload1.FileName;
if (FileUpload1.FileName.LastIndexOf(“.”) != -1 && FileUpload1.FileName.Substring(FileUpload1.FileName.LastIndexOf(“.”) + 1, 3) == “xls”)
{

FileUpload1.PostedFile.SaveAs(Server.MapPath(“..\\Uploads\\Employee\\”) + file);

this.Label1.ForeColor = this.Label4.ForeColor;
//Label1.Text = “File Saved to: ” + Server.MapPath(“..\\Uploads\\Personal\\”) + file;

ShowDatatoGrid(file);

FileInfo TheFile = new FileInfo(MapPath(“..\\Uploads\\Employee\\”) + file);
if (TheFile.Exists)
{
File.Delete(MapPath(“..\\Uploads\\Employee\\”) + file);
}
}
else
{
Label2.Text = “”;
Label5.Text = “”;
this.Label1.ForeColor = this.Label3.ForeColor;
this.Label1.Text = “ไฟล์ข้อมูลที่ต้องการอัพโหลด ต้องอยู่ในรูปแบบ Excel (.xls)”;
}

}
else
{
Label2.Text = “”;
Label5.Text = “”;
this.Label1.ForeColor = this.Label3.ForeColor;
this.Label1.Text = “กรุณาเลือกไฟล์เพื่ออัพโหลด”;
}
}
private void ShowDatatoGrid(string f)
{

try
{
GridView1.Visible = true;

this.strConn = @”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” + Server.MapPath(“..\\Uploads\\Employee\\”) + f + @”;Extended Properties=””Excel 8.0;”””;

this.GridView1.DataSource = getWorksheet(“Sheet1$”);

this.GridView1.DataBind();

Label2.Text = “ข้อมูลทั้งหมด : ” + this.GridView1.Rows.Count + ” คน”;

}

catch (Exception ex)
{
this.Label1.ForeColor = this.Label3.ForeColor;
this.Label1.Text = ex.Message;

}

}
private DataTable getWorksheet(string worksheet)
{

DataSet m_ds = new DataSet();

try
{

exConn = new OleDbConnection(strConn);

exConn.Open();

OleDbDataAdapter m_da = new OleDbDataAdapter(“SELECT * FROM [” + worksheet + “] “, exConn);

m_da.Fill(m_ds, “Table”);

}

catch (Exception ex)
{
this.Label1.ForeColor = this.Label3.ForeColor;
this.Label1.Text = ex.Message + “”;

}

finally
{

exConn.Close();

}

if (m_ds.Tables.Count > 0)
{

return m_ds.Tables[0];

}

else
{

dt = new DataTable();

return dt;

}
}

future ใหม่ใน C# language

มีอะไรใหม่บ้างไปดูกันครับ

Mads Torgersen มีความเห็นเกี่ยวสองคำแนะนำคุณลักษณะภาษา UserVoice สังเกตว่าพวกเขาจะกระตือรือร้นทำโครงการดังกล่าว

หากคุณไม่ได้โหวตสำหรับคุณสมบัติของคุณต้องการมากที่สุด แต่คุณควรมุ่งหน้าไปยัง UserVoice ตอนนี้และลงมติไป (ยกเว้นกรณีที่คุณต้องการที่จะได้รับกลับ VB 6.0 ซึ่งในกรณีการแก้ไข

operator

นี้เป็นสิ่งที่สวยงามถ้าคุณถามฉัน การใช้งานง่ายพอถ้าคุณเขียน

var x= foo?.bar?.baz();

และ foo or bar  Null, x จะเป็น null ไป ในคำอื่น ๆ ที่คุณมักจะได้รับค่า nullable จากซัพพลายนี้ นี้จะทำให้มันง่ายที่จะกำหนดค่าเริ่มต้นของคุณเองโดยเพียงแค่การผนวก “? Y “สายแทนการพยายามที่จะคิดออกว่าเป็นศูนย์ที่คุณได้กลับมาที่เป็นค่าเริ่มต้นหรือมูลค่าที่แท้จริง

หนึ่งปัญหาเล็กน้อยกับคำแนะนำในปัจจุบันก็คือว่ามันจะทำงานหากคอมไพเลอร์รู้ว่าถ้าคุณมีประเภท nullable หรือไม่ ดังนั้นการแยกรหัส request ไปจะไม่ดีกับข้อเสนอแนะในปัจจุบันตั้งแต่ตัวแปรแบบไดนามิกของคุณชนิดของเอาความรู้ที่ได้จากคอมไพเลอร์

ต้นแบบในอีกไม่กี่เดือนข้างหน้าคือสิ่งที่ Mads Torgersen กล่าวในการตอบสนองของเขาสำหรับคำแนะนำ UserVoice

Default value on properties

ไม่เพิ่มเขตข้อมูลการสนับสนุน / การตั้งค่าในการสร้างเพียงเพื่อให้แน่ใจว่าสถานที่ให้บริการของคุณมีค่าเริ่มต้นที่ถูกต้อง ตอนนี้เราจะสามารถตั้งค่าในแถวที่สถานที่ให้บริการแทน

C#

 

1

public int X { get; set; } = x;

ดูง่ายพอ นอกจากนี้เราจะสามารถที่จะเขียน:

C#

 

1

public int Y { get; } = y;

นี้ควรจะเป็นเช่นเดียวกับ

C#

 

1

public int Y { get { return y; } }

การลดจำนวนของตัวอักษรที่เป็นเสมอดี แต่ส่วนตัวผมไม่สนใจว่ามากเกี่ยวกับกรณีโดยเฉพาะอย่างยิ่งที่

ส่ง Auto Notification โดยใช้ Windows Service

บริการ Microsoft Windows NT, ช่วยให้คุณสามารถสร้างโปรแกรมประยุกต์ที่ปฏิบัติการยาวทำงานที่ทำงานในช่วงของ Windows ของตัวเอง บริการเหล่านี้สามารถเริ่มต้นโดยอัตโนมัติเมื่อบูทเครื่องคอมพิวเตอร์ที่สามารถหยุดและเริ่มต้นใหม่และไม่ได้แสดงให้เห็นส่วนติดต่อผู้ใช้ใด ๆ คุณสมบัติเหล่านี้ทำให้บริการที่เหมาะสำหรับการใช้งานบนเซิร์ฟเวอร์หรือเมื่อใดก็ตามที่คุณจำเป็นต้องทำงานยาวทำงานที่ไม่ได้ยุ่งเกี่ยวกับผู้ใช้อื่นที่กำลังทำงานบนคอมพิวเตอร์เครื่องเดียวกัน

บริการ Windows ถูกสร้างขึ้นโดยใช้เครื่องมือในการพัฒนาเช่น Microsoft Visual Studio หรือ Embarcadero Delphi เพื่อที่จะให้บริการ Windows โปรแกรมจะต้องมีการเขียนในลักษณะที่จะสามารถจัดการกับการเริ่มต้นหยุดและหยุดข้อความจากตัวจัดการควบคุมบริการ บริการจัดการควบคุมเป็นส่วนประกอบของ Windows ที่เป็นผู้รับผิดชอบสำหรับการเริ่มต้นและหยุดบริการ

  • Open Visual Studio
  • Go to file->new->project
  • Select Windows service
  • Right click on Service1.cs and select properties
  • In the properties window, click on add Installerhttptheintelligenceproject.com19
  • Right click on serviceInstaller1, select properties
  • Change DisplayNameServiceName to SeraMailService
  • StartType to Automatic

theintelligenceproject20

 

  • Right click on serviceProcessInstaller1 then select Properties
  • Change Account to LocalSystem
  • Right click on Service1.cs Design select ViewCode

theintelligenceproject21

 

n the OnStart method :

public void GetMail(object sender, System.Timers.ElapsedEventArgs args)
        {
            NetworkCredential cred = new NetworkCredential("email@lafarge.com", "Password");
            MailMessage msg = new MailMessage();
            msg.To.Add("email@apsissolutions.com");
            msg.Subject = "Welcome JUBAYER";

            msg.Body = "You Have Successfully Entered to Sera's World!!!";
            msg.From = new MailAddress("email@apsissolutions.com"); // Your Email Id
            SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
            SmtpClient client1 = new SmtpClient("smtp.mail.yahoo.com", 465);
            client.Credentials = cred;
            client.EnableSsl = true;
            client.Send(msg);
        }


Add this line before onload method:
System.Timers.Timer createOrderTimer;


In the onStart method, type this code:
createOrderTimer = new System.Timers.Timer();
createOrderTimer.Elapsed += new System.Timers.ElapsedEventHandler(GetMail);
createOrderTimer.Interval = 180000;//Set Three minutes intervals
createOrderTimer.Enabled = true;
createOrderTimer.AutoReset = true;
createOrderTimer.Start();



The full code:

System.Timers.Timer createOrderTimer;

        public Service1()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            createOrderTimer = new System.Timers.Timer();
            createOrderTimer.Elapsed += new System.Timers.ElapsedEventHandler(GetMail);
            createOrderTimer.Interval = 500;
            createOrderTimer.Enabled = true;
            createOrderTimer.AutoReset = true;
            createOrderTimer.Start();           
        }

        public void GetMail(object sender, System.Timers.ElapsedEventArgs args)
        {
            NetworkCredential cred = new NetworkCredential("email@lafarge.com", "Password");
            MailMessage msg = new MailMessage();
            msg.To.Add("email@apsissolutions.com");
            msg.Subject = "Welcome JUBAYER";

            msg.Body = "You Have Successfully Entered to Sera's World!!!";
            msg.From = new MailAddress("email@apsissolutions.com"); // Your Email Id
            SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
            SmtpClient client1 = new SmtpClient("smtp.mail.yahoo.com", 465);
            client.Credentials = cred;
            client.EnableSsl = true;
            client.Send(msg);
        }

Send Mail Form Use C#

httptheintelligenceproject.com18

 

Code

 

<%this is the client side code for the design and display%>
<asp:Panel ID="Panel1" runat="server" DefaultButton="btnSubmit">
    <p>
        Please Fill the Following to Send Mail.</p>
    <p>
        Your name:
        <asp:RequiredFieldValidator ID="RequiredFieldValidator11" runat="server" ErrorMessage="*"
            ControlToValidate="YourName" ValidationGroup="save" /><br />
        <asp:TextBox ID="YourName" runat="server" Width="250px" /><br />
        Your email address:
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="*"
            ControlToValidate="YourEmail" ValidationGroup="save" /><br />
        <asp:TextBox ID="YourEmail" runat="server" Width="250px" />
        <asp:RegularExpressionValidator runat="server" ID="RegularExpressionValidator23"
            SetFocusOnError="true" Text="Example: username@gmail.com" ControlToValidate="YourEmail"
            ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" Display="Dynamic"
            ValidationGroup="save" /><br />
        Subject:
        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="*"
            ControlToValidate="YourSubject" ValidationGroup="save" /><br />
        <asp:TextBox ID="YourSubject" runat="server" Width="400px" /><br />
        Your Question:
        <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="*"
            ControlToValidate="Comments" ValidationGroup="save" /><br />
        <asp:TextBox ID="Comments" runat="server" 
                TextMode="MultiLine" Rows="10" Width="400px" />
    </p>
    <p>
        <asp:Button ID="btnSubmit" runat="server" Text="Send" 
                    OnClick="Button1_Click" ValidationGroup="save" />
    </p>
</asp:Panel>
<p>
    <asp:Label ID="DisplayMessage" runat="server" Visible="false" />
</p>  




protected void SendMail()
{
    // Gmail Address from where you send the mail
    var fromAddress = "Gmail@gmail.com";
    // any address where the email will be sending
    var toAddress = YourEmail.Text.ToString(); 
    //Password of your gmail address
    const string fromPassword = "Password";
     // Passing the values and make a email formate to display
    string subject = YourSubject.Text.ToString();
    string body = "From: " + YourName.Text + "\n";
    body += "Email: " + YourEmail.Text + "\n";
    body += "Subject: " + YourSubject.Text + "\n";
    body += "Question: \n" + Comments.Text + "\n";
    // smtp settings
    var smtp = new System.Net.Mail.SmtpClient();
    {
        smtp.Host = "smtp.gmail.com";
        smtp.Port = 587;
        smtp.EnableSsl = true;
        smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
        smtp.Credentials = new NetworkCredential(fromAddress, fromPassword);
        smtp.Timeout = 20000;
    }
    // Passing values to smtp object
    smtp.Send(fromAddress, toAddress, subject, body);
}

protected void Button1_Click(object sender, EventArgs e)
{
    try
    {
        //here on button click what will done 
        SendMail();
        DisplayMessage.Text = "Your Comments after sending the mail";
        DisplayMessage.Visible = true;
        YourSubject.Text = "";
        YourEmail.Text = "";
        YourName.Text = "";
        Comments.Text = "";
    }
    catch (Exception) { }
}

C# Multi Language

วันนี้มาเขียน C# Multi Language กันครับ

1. เริ่มจากสร้าง new website project

2. สร้าง folder  App_GlobalResources  ดูได้จากรูปครับ

httptheintelligenceproject.com16

 

3. คลิกขวา App_GlobalRrsources เลือก Resources File ใหม่ เพื่อเพิ่มภาษา และเราสามารถเพิ่มไฟล์ภาษาเขียนตามฟอแมทนี้ครับ “name.language-culture.resx”

4. เปิด resource files  มาเพื่อใส่ค่า ตามรูป

httptheintelligenceproject.com17

 

5. สร้าง  class file  ร่วมกับ  BasePage เช่น

Original: public partial class Default : System.Web.UI.Page

Now: public partial class Default : BasePage

6. สร้าง webpage  Default.aspx โดย codeข้างใน inheritance  มาจาก System.Web.UI.Page to BasePage.

7. ใช้ asp:Literal control  ตัวอย่าง code

<asp:Literal ID="Literal3" runat="server" Text="<%$Resources:chienvh.language,mnuHome%>"/>



using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Threading;
using System.Globalization;
using System;

namespace ASPNetMultiLanguage
{
    public class BasePage : System.Web.UI.Page
    {
        protected override void InitializeCulture()
        {
            if (!string.IsNullOrEmpty(Request["lang"]))
            {

			Session["lang"] = Request["lang"];
            }
            string lang = Convert.ToString(Session["lang"]);
            string culture = string.Empty;
            /* // In case, if you want to set vietnamese as default language, then removing this comment
            if(lang.ToLower().CompareTo("vi") == 0 ||string.IsNullOrEmpty(culture))
            {               
				culture = "vi-VN";
            }
             */
            if (lang.ToLower().CompareTo("en") == 0 || string.IsNullOrEmpty(culture))
            {
                culture = "en-US";
            }
            if (lang.ToLower().CompareTo("vi") == 0)
            {               
				culture = "vi-VN";
            }
            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture);
            Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);

            base.InitializeCulture();
        }
    }
}







using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ASPNetMultiLanguage
{
    public partial class Default : BasePage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            #region--Show/hide language link
            if (!string.IsNullOrEmpty(Convert.ToString(Session["lang"])))
            {
                if (Convert.ToString(Session["lang"]) == "en")
                {
                    linkVietnameseLang.Visible = true;
                    linkEnglishLang.Visible = false;
                }
                else
                {
                    linkEnglishLang.Visible = true;
                    linkVietnameseLang.Visible = false;
                }
            }
            else
            {
                linkVietnameseLang.Visible = false;
                linkEnglishLang.Visible = true;
            }
            #endregion--
        }
    }
}

C# Crystal Reports String parameter

การสร้าง  Crystal Reports  โดยใช้  String parameter โดยเข้ไปที่ CrystalReport (ตามรูปครับ)

httptheintelligenceproject.com1

เลือก Field Explorer

หลังจากนั้นเลือก Parameter Field จาก Field Explorer แล้ว click ขวาเลือก New (ตามรูป)

httptheintelligenceproject.com2

จากนั้น ใส่ข้อมูล Name and Prompting text

httptheintelligenceproject.com3

 

ก่อนที่เราจะสร้าง parameter field เราต้องมี selection formula สำหรับ Crystal Reports parameter ก่อนนะครับ วิธรการสร้าง Click ขวา ใน Crystal Reports เลือก REPORT -> SELECTION FORMULA -> RECORD .

httptheintelligenceproject.com7

 

แล้วก็เลือก Record ตาม List นะครับ

จากนั้นเลือก form (Form1.cs) แล้วลาก CrystalReportViewer control ไปใส่ในฟอร์มนะครับ

httptheintelligenceproject.com5

 

ใช้ Namespace ตามนี้นะครับ

using CrystalDecisions.CrystalReports.Engine;

using CrystalDecisions.Shared;

Code ตัวอย่างครับ

using System;

using System.Windows.Forms;

using CrystalDecisions.CrystalReports.Engine;

using CrystalDecisions.Shared;

namespace WindowsApplication1

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)

        {

            ReportDocument cryRpt = new ReportDocument();

            cryRpt.Load("PUT CRYSTAL REPORT PATH HERE\CrystalReport1.rpt");

            ParameterFieldDefinitions crParameterFieldDefinitions ;

            ParameterFieldDefinition crParameterFieldDefinition ;

            ParameterValues crParameterValues = new ParameterValues();

            ParameterDiscreteValue crParameterDiscreteValue = new ParameterDiscreteValue();

            crParameterDiscreteValue.Value = textBox1.Text;

            crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields;

            crParameterFieldDefinition = crParameterFieldDefinitions["Customername"];

            crParameterValues = crParameterFieldDefinition.CurrentValues;

            crParameterValues.Clear();

            crParameterValues.Add(crParameterDiscreteValue);

            crParameterFieldDefinition.ApplyCurrentValues(crParameterValues);

            crystalReportViewer1.ReportSource = cryRpt;

            crystalReportViewer1.Refresh(); 

        }

    }

}

 

 

 

 

คอนฟิก SMTP ส่งเมลล์ Outlook.com

Code Config SMTP เบื้องต้นนะครับ

using System;
using System.Net.Mail;

namespace SmtpMailConnections
{
    public class OutlookDotComMail
    {
        string _sender = "";
        string _password = "";
        public OutlookDotComMail(string sender, string password)
        {
            _sender = sender;
            _password = password;
        }  

        public void SendMail(string recipient, string subject, string message)
        {
            SmtpClient client = new SmtpClient("smtp-mail.outlook.com");

            client.Port = 587;
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.UseDefaultCredentials = false;
            System.Net.NetworkCredential credentials = 
                new System.Net.NetworkCredential(_sender, _password);
            client.EnableSsl = true;
            client.Credentials = credentials;

            try
            {
                var mail = new MailMessage(_sender.Trim(), recipient.Trim());
                mail.Subject = subject;
                mail.Body = message;
                client.Send(mail);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                throw ex;
            }
        }
    }
}

Code Sent Mail ครับ
class Sent
{
    static void Main(string[] args)
    {
        string UserMail = "YourAccount@outlook.com";
        string PwdMail = "YourPassword";

        var sender = new OutlookDotComMail(UserMail, PwdMail);
        sender.SendMail("recipient@example.com", "Mail", "HelloWord!");
    }
}