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:Object reference not set to an instance of an object. ดูข้อมูลได้อย่างเดียว พอกดแก้ไขก็ขึ้นerrorแบบนี้



 

error:Object reference not set to an instance of an object. ดูข้อมูลได้อย่างเดียว พอกดแก้ไขก็ขึ้นerrorแบบนี้

 



Topic : 055067

Guest




โค้ดที่เขียนจะประมาณว่า ให้ผู้ใช้กรอกหมายเลยID แล้วจะแสดงข้อมูลในgridviewค่ะ
สามารถเรียกข้อมูลขึ้นมาแสดงได้ แต่พอกด แก้ไข หรือ ลบ ก็จะขึ้นerror แบบนี้ค่ะ
Object reference not set to an instance of an object.



ตัวอย่างโค้ดค่ะ


Code (C#)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;

namespace Dentist
{
    public partial class Staff : System.Web.UI.Page
    {
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Dentist_Pool"].ConnectionString);

        SqlDataAdapter da = null;
        DataTable dt = null;

        protected void Page_Load(object sender, EventArgs e)
        {
        }

        protected void btnStaffsubmit_Click(object sender, EventArgs e)
        {
            IsStaffdate(txtStaffid.Text);
        }
        protected void IsStaffdate(string staffid)
        {
            con.Open();

            String sqlSelect = "select StaffId from Staffdate where StaffId = @staffid";
            SqlCommand com = new SqlCommand(sqlSelect, con);

            com.Parameters.AddWithValue("@staffid", txtStaffid.Text);

            using (IDataReader reader = com.ExecuteReader())
            {
                while (reader.Read())
                {
                    Session["sessionStaffId"] = reader.GetInt32(0);
                    break;
                }
                reader.Close();
                con.Close();

                con.Open();
                String sqlSelect2 = "select StaffdateId, StaffLeaveStart, StaffLeaveFinish, StaffTimeStart, StaffTimeFinish, StaffLeaveNote from Staffdate where StaffId = '" + Session["sessionStaffId"] + "'";
                da = new SqlDataAdapter(sqlSelect2, con);
                con.Close();

            }

            //con.Open();
            //String sqlSelect = "select StaffdateId, StaffLeaveStart, StaffLeaveFinish, StaffTimeStart, StaffTimeFinish, StaffLeaveNote from Staffdate where StaffId = @staffid";
            ////SqlCommand com = new SqlCommand();
            ////com.Parameters.AddWithValue("@staffid", txtStaffid.Text);

            //da = new SqlDataAdapter(sqlSelect, con);
            //con.Close();

            BindData();
        }

        void BindData()
        {
            dt = new DataTable();
            da.Fill(dt);
            grdStaffdate.DataSource = dt;
            grdStaffdate.DataBind();

            dt = null;
            con.Close();
        }

        void Page_Unload()
        {
            con.Close();
            con = null;
        }

        protected void modEditCommand(object sender, GridViewEditEventArgs e)
        {
            Label lblStaffLeaveStart = (sender as GridView).Rows[e.NewEditIndex].FindControl("lbllblStaffLeaveStartt") as Label;
            Label lblStaffLeaveFinish = (sender as GridView).Rows[e.NewEditIndex].FindControl("lblStaffLeaveFinish") as Label;
            Label lblStaffTimeStart = (sender as GridView).Rows[e.NewEditIndex].FindControl("lblStaffTimeStart") as Label;
            Label lblStaffTimeFinish = (sender as GridView).Rows[e.NewEditIndex].FindControl("lblStaffTimeFinish") as Label;
            Label lblStaffLeaveNote = (sender as GridView).Rows[e.NewEditIndex].FindControl("lblStaffLeaveNote") as Label;

            grdStaffdate.EditIndex = e.NewEditIndex;
            grdStaffdate.ShowFooter = false;
            BindData();

            TextBox txtEditLeaveStart = (sender as GridView).Rows[e.NewEditIndex].FindControl("txtEditLeaveStart") as TextBox;
            TextBox txtEditLeaveFinish = (sender as GridView).Rows[e.NewEditIndex].FindControl("txtEditLeaveFinish") as TextBox;
            DropDownList ddlEditTimeStart = (sender as GridView).Rows[e.NewEditIndex].FindControl("ddlEditTimeStart") as DropDownList;
            DropDownList ddlEditTimeFinish = (sender as GridView).Rows[e.NewEditIndex].FindControl("ddlEditTimeFinish") as DropDownList;
            TextBox txtEditLeaveNote = (sender as GridView).Rows[e.NewEditIndex].FindControl("txtEditLeaveNote") as TextBox;

            txtEditLeaveStart.Text = lblStaffLeaveStart.Text;
            txtEditLeaveFinish.Text = lblStaffLeaveFinish.Text;
            ddlEditTimeStart.Text = lblStaffTimeStart.Text;
            ddlEditTimeStart.Text = lblStaffTimeFinish.Text;
            txtEditLeaveNote.Text = lblStaffLeaveNote.Text;
        }
        protected void modCancelCommand(object sender, GridViewCancelEditEventArgs e)
        {
            grdStaffdate.EditIndex = -1;
            grdStaffdate.ShowFooter = false;
            BindData();
        }
        protected void modDeleteCommand(object sender, GridViewDeleteEventArgs e)
        {
            con.Open();
            String sqlDelete = "delete from Staffdate where StaffdateId = '" + grdStaffdate.DataKeys[e.RowIndex].Value + "'";
            SqlCommand com = new SqlCommand(sqlDelete, con);
            com.ExecuteNonQuery();
            con.Close();

            grdStaffdate.EditIndex = -1;
            BindData();
        }
        protected void modUpdateCommand(object sender, GridViewUpdateEventArgs e)
        {
            TextBox txtEditLeaveStart = (TextBox)grdStaffdate.Rows[e.RowIndex].FindControl("txtEditLeaveStart");
            TextBox txtEditLeaveFinish = (TextBox)grdStaffdate.Rows[e.RowIndex].FindControl("txtEditLeaveFinish");
            DropDownList ddlEditTimeStart = (DropDownList)grdStaffdate.Rows[e.RowIndex].FindControl("ddlEditTimeStart");
            DropDownList ddlEditTimeFinish = (DropDownList)grdStaffdate.Rows[e.RowIndex].FindControl("ddlEditTimeFinish");
            TextBox txtEditLeaveNote = (TextBox)grdStaffdate.Rows[e.RowIndex].FindControl("txtEditLeaveNote");
            
            con.Open();
            String sqlUpdate = "update Staffdate set StaffLeaveStart = '" + txtEditLeaveStart.Text + "'" + " , StaffLeaveFinish = '" + txtEditLeaveFinish.Text + "'" + " , StaffTimeStart = '" + ddlEditTimeStart.Text + "'"
                + " , StaffTimeFinish ='" + ddlEditTimeFinish.Text + "'" + " , StaffLeaveNote = '" + txtEditLeaveNote.Text + "'" + " where StaffId = '" + grdStaffdate.DataKeys[e.RowIndex].Value + "'";
            SqlCommand com = new SqlCommand(sqlUpdate, con);
            com.ExecuteNonQuery();
            con.Close();

            grdStaffdate.EditIndex = -1;
            grdStaffdate.ShowFooter = true;
            BindData();
        }
        protected void modRowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Add")
            {
                TextBox txtAddLeaveStart = (TextBox)grdStaffdate.FooterRow.FindControl("txtAddLeaveStart");
                TextBox txtAddLeaveFinish = (TextBox)grdStaffdate.FooterRow.FindControl("txtAddLeaveFinish");
                DropDownList ddlAddTimeStart = (DropDownList)grdStaffdate.FooterRow.FindControl("ddlAddTimeStart");
                DropDownList ddlAddTimeFinish = (DropDownList)grdStaffdate.FooterRow.FindControl("ddlAddTimeFinish");
                TextBox txtAddLeaveNote = (TextBox)grdStaffdate.FooterRow.FindControl("txtAddLeaveNote");

                con.Open();
                String sqlInsert = "insert into Staffdate (StaffLeaveStart, StaffLeaveFinish, StaffTimeStart, StaffTimeFinish, StaffLeaveNote)" +
                    "values ('" + txtAddLeaveStart.Text + "','" + txtAddLeaveFinish.Text + "','"+ ddlAddTimeStart.Text + "','" + ddlAddTimeFinish.Text + "', '" + txtAddLeaveNote.Text + "')";
                SqlCommand com = new SqlCommand(sqlInsert,con);
                com.ExecuteNonQuery();
                con.Close();

                BindData();
            }
        }

    
        protected void btnStaffcancel_Click(object sender, EventArgs e)
        {
            txtStaffid.Text = "";
        }

        protected void btnStaffAdd_Click(object sender, EventArgs e)
        {
            Response.Redirect("~/Clinic/StaffAdd.aspx");
        }
    }
}




Tag : .NET, Ms SQL Server 2008, Web (ASP.NET), C#







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-01-25 17:08:14 By : ... View : 1440 Reply : 2
 

 

No. 1

Guest


ขอเพิ่มเติมค่ะ คือลองหาอ่านจากinternet ดูแล้ว
เค้าก็บอกประมาณว่า มันหา object ที่อ้างถึงไม่เจอ
แต่กยัง งงๆอยู่ดีค่ะ มีใครพอจะอธิบายให้เข้าใจง่ายกว่านี้บ้างค่ะ

พอดีว่าเพิ่งหัดเขียนก็เลยยังไม่ค่อยรู้เรื่องเท่าไร






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-25 17:10:32 By : ...
 


 

No. 2



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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

ประมาณนั้นครับ การ Debug ช่วยได้ครับ โดยไปทีล่ะ Step ก็จะรู้ว่า Error Line ไหนครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-25 17:12:38 By : webmaster
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : error:Object reference not set to an instance of an object. ดูข้อมูลได้อย่างเดียว พอกดแก้ไขก็ขึ้นerrorแบบนี้
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 05
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 อัตราราคา คลิกที่นี่