Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > เกิด Error : Exception was unhandled ตรงบรรทัด throw อ่ะครับ วานผู้รู้ดูให้หน่อย



 

เกิด Error : Exception was unhandled ตรงบรรทัด throw อ่ะครับ วานผู้รู้ดูให้หน่อย

 



Topic : 057633



โพสกระทู้ ( 57 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook



Code (C#)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Search_Form
{
    public partial class Search_Form : Form
    {
        public Search_Form()
        {
            InitializeComponent();
        }

        private DataSet dsDataSet;
      
        private void Search_Form_Load(object sender, EventArgs e)
        {    
       
        }

        private void btnSearch_Click(object sender, EventArgs e)
        {
            /*- - - - - - - - - - - - - - - - - -เชื่อมต่อฐานข้อมูล- - - - - - - - - - - - - - - - - */
            string conStr = "Provider=Microsoft.Ace.OleDb.12.0;" +
                @"Data Source=C:\Users\Plugfai\Documents\Visual Studio 2008\Projects\Bus_Aplication\Data\Bus Transport of Bangkok.accdb";
            OleDbConnection conn = new OleDbConnection(conStr);
            conn.Open();
            /*  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */

            dsDataSet = new DataSet();
            OleDbCommand cmd;
            OleDbDataAdapter adapter;
            string sql;
            string BN = txtNum.Text;

            if (BN == "")
            {
                MessageBox.Show("กรุณากรอกเลขสายค่ะ", "error");
            }
            else
            {

                sql = "SELECT * FROM Bus_Lines WHERE Bus_Number=" + "'" + BN + "'";
                cmd = new OleDbCommand(sql, conn);
                adapter = new OleDbDataAdapter(cmd);
                adapter.Fill(dsDataSet, "Bus");

                try
                {
                    txtShow.Text = dsDataSet.Tables["Bus"].Rows[0]["Ramble"].ToString();
                }
                catch
                {
                    throw new Exception("ไม่พบข้อมูล");
                }
            }
            //DataView dv = new DataView(dsDataSet.Tables["Bus"]);
            // dv.RowFilter = "Bus_Number = '1'";
            // txtShow.DataBindings.Add("Text", dv, "Bus.Ramble");

            conn.Close();
        }
    }
}



ตามหัวข้อเลยครับ +



Tag : .NET







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-03-22 13:25:41 By : plugantz View : 1492 Reply : 8
 

 

No. 1



โพสกระทู้ ( 1,348 )
บทความ ( 1 )



สถานะออฟไลน์


ถ้าจะใช้ Thrown น่าเขียนแบบนี้มากกว่า
Sample 1
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Search_Form
{
    public partial class Search_Form : Form
    {
        public Search_Form()
        {
            InitializeComponent();
        }

        private DataSet dsDataSet;
      
        private void Search_Form_Load(object sender, EventArgs e)
        {    
       
        }

        private void btnSearch_Click(object sender, EventArgs e)
        {
            /*- - - - - - - - - - - - - - - - - -เชื่อมต่อฐานข้อมูล- - - - - - - - - - - - - - - - - */
            string conStr = "Provider=Microsoft.Ace.OleDb.12.0;" +
                @"Data Source=C:\Users\Plugfai\Documents\Visual Studio 2008\Projects\Bus_Aplication\Data\Bus Transport of Bangkok.accdb";
            OleDbConnection conn = new OleDbConnection(conStr);
            conn.Open();
            /*  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */

            dsDataSet = new DataSet();
            OleDbCommand cmd;
            OleDbDataAdapter adapter;
            string sql;
            string BN = txtNum.Text;

            if (BN == "")
            {
                MessageBox.Show("กรุณากรอกเลขสายค่ะ", "error");
            }
            else
            {

                sql = "SELECT * FROM Bus_Lines WHERE Bus_Number=" + "'" + BN + "'";
                cmd = new OleDbCommand(sql, conn);
                adapter = new OleDbDataAdapter(cmd);
                adapter.Fill(dsDataSet, "Bus");

                try
                {
	     If dsDataSet.Tables["Bus"].Rows.Count=0 Then  throw new Exception("ไม่พบข้อมูล");
                    txtShow.Text = dsDataSet.Tables["Bus"].Rows[0]["Ramble"].ToString();
		
                }
                catch ex As Exception
                {
                    Messagebox.Show(ex.Message);  
                }
            }
            //DataView dv = new DataView(dsDataSet.Tables["Bus"]);
            // dv.RowFilter = "Bus_Number = '1'";
            // txtShow.DataBindings.Add("Text", dv, "Bus.Ramble");

            conn.Close();
        }
    }
}







แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-22 13:39:39 By : หางอึ่ง
 


 

No. 2



โพสกระทู้ ( 1,348 )
บทความ ( 1 )



สถานะออฟไลน์


หรืออาจไม่ต้องใช้ Throw ก็ได้เดี๋ยวโปรแกรมก็เหวี่ยงมาให้เอง เพราะอยู่ใน Try Box
Sample 1
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Search_Form
{
    public partial class Search_Form : Form
    {
        public Search_Form()
        {
            InitializeComponent();
        }

        private DataSet dsDataSet;
      
        private void Search_Form_Load(object sender, EventArgs e)
        {    
       
        }

        private void btnSearch_Click(object sender, EventArgs e)
        {
            /*- - - - - - - - - - - - - - - - - -เชื่อมต่อฐานข้อมูล- - - - - - - - - - - - - - - - - */
            string conStr = "Provider=Microsoft.Ace.OleDb.12.0;" +
                @"Data Source=C:\Users\Plugfai\Documents\Visual Studio 2008\Projects\Bus_Aplication\Data\Bus Transport of Bangkok.accdb";
            OleDbConnection conn = new OleDbConnection(conStr);
            conn.Open();
            /*  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */

            dsDataSet = new DataSet();
            OleDbCommand cmd;
            OleDbDataAdapter adapter;
            string sql;
            string BN = txtNum.Text;

            if (BN == "")
            {
                MessageBox.Show("กรุณากรอกเลขสายค่ะ", "error");
            }
            else
            {

                sql = "SELECT * FROM Bus_Lines WHERE Bus_Number=" + "'" + BN + "'";
                cmd = new OleDbCommand(sql, conn);
                adapter = new OleDbDataAdapter(cmd);
                adapter.Fill(dsDataSet, "Bus");

                try
                {
	    // If dsDataSet.Tables["Bus"].Rows.Count=0 Then  throw new Exception("ไม่พบข้อมูล");
                    txtShow.Text = dsDataSet.Tables["Bus"].Rows[0]["Ramble"].ToString();
		
                }
                catch ex As Exception
                {
                    Messagebox.Show(ex.Message);  
                }
            }
            //DataView dv = new DataView(dsDataSet.Tables["Bus"]);
            // dv.RowFilter = "Bus_Number = '1'";
            // txtShow.DataBindings.Add("Text", dv, "Bus.Ramble");

            conn.Close();
        }
    }
}

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-22 13:40:59 By : หางอึ่ง
 

 

No. 3



โพสกระทู้ ( 57 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

คือ ความตั้งใจ จะใช้ Throw แสดงข้อความแจ้งเตือน อ่ะครับ
ยังไง ก็คงต้องใช้ อ่ะครับ

ถ้ายังไง ช่วยบอกหน่อยได้ไหมว่า
ทำไม แบบที่ผมเขียนจึงไม่ถูกต้อง เพราะอะไร

ผมจะได้เข้าใจตัวไวยกรณ์ ของมันได้ถูกต้องอ่ะครับ !


ประวัติการแก้ไข
2011-03-22 13:51:08
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-22 13:50:12 By : plugantz
 


 

No. 4



โพสกระทู้ ( 57 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ผมเอาไอเดีย ของคุณหางลิ่ง มาปรับปรุง นะครับ
โดย บรรทัด try กับ catch ผมเปลี่ยนเป็นคำสั่งดังนี้
Code (C#)
 int Count_Data = dsDataSet.Tables["Bus"].Rows.Count;
                if (Count_Data == 0)
                    MessageBox.Show("ไม่พบข้อมูล");
                else
                    txtShow.Text = dsDataSet.Tables["Bus"].Rows[0]["Ramble"].ToString();


อาจจะดูลูกทุ่งไปหน่อย ถ้าไงใครมีวิธี ไหนที่ดีกว่าก็แนะนำให้ผมที่ครับ !
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-22 13:58:54 By : plugantz
 


 

No. 5



โพสกระทู้ ( 1,348 )
บทความ ( 1 )



สถานะออฟไลน์


Exception was unhandled
เกิดจากการ Throw ที่ไม่มีตัวรับ (Catch)

อีกอย่าง Throw มิใช่ตัวแสดงข้อความนะครับ ตัวแสดงข้อความคือ MessageBox
เราใช้ Throw เพื่อทำให้ระบบเกิดข้อผิดพลาด และเมื่อจะใช้ Throw จำไว้ว่าต้องอยู่ใน Try Box

ไม่ค่อยถนัดภาษา C ขอเขียนเป็น vb
Try
   If นิพจน์ตรวจสอบข้อผิดพลาด Then Throw New Exception("ข้อความแสดงความผิดพลาด")
   ....
   ....
Catch ex As Exception
   Messagebox.Show(ex.Message)
End Try

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-22 14:01:08 By : หางอึ่ง
 


 

No. 6



โพสกระทู้ ( 57 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook


ขอบคุณครับ !
แบบนี้ เข้าใจขึ้นเยอะเลย แฮ่ๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-22 14:04:16 By : plugantz
 


 

No. 7



โพสกระทู้ ( 1,348 )
บทความ ( 1 )



สถานะออฟไลน์


หรือจะเขียนแบบนี้ก็ไม่ผิด
Sample Throw
Private Sub btnSearch_Click(object sender, EventArgs e) 
   Try
     ......
      Me.TestThrow()
      ......
   Catch ex As Exception
      Messagebox.Show(ex)
   End Try 
End

Private Sub TestThrow()
    ....
    If นิพจน์ตรวจสอบความผิดพลาด Then Throw New Exception("ข้อความ")
    ....
End Sub



อย่างนี้ก็ยังได้ ไม่ว่ากัน
Sample Throw
Private Sub btnSearch_Click(object sender, EventArgs e) 
   Try
     ......
      Me.TestThrow()
     .......
   Catch ex As Exception
      Messagebox.Show(ex)
   End Try 
End

Private Sub TestThrow()
   Try
         ....
         If นิพจน์ตรวจสอบความผิดพลาด Then Throw New Exception("ข้อความ")
        ....
   Catch ex As Exception
       Throw ex
   End Try
End Sub

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-22 14:12:10 By : หางอึ่ง
 


 

No. 8



โพสกระทู้ ( 57 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

Code (C#)
    try
                {
                    txtShow.Text = dsDataSet.Tables["Bus"].Rows[0]["Ramble"].ToString();
                }
                catch
                {
                    MessageBox.Show("ไม่พบข้อมูล");
                }

แปลง เป็น C# ก็ตามนี้นะครับ ^ ^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-03-22 15:11:00 By : plugantz
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : เกิด Error : Exception was unhandled ตรงบรรทัด throw อ่ะครับ วานผู้รู้ดูให้หน่อย
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่