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,038

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


 

[.NET] 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#)
001.using System;
002.using System.Collections.Generic;
003.using System.Linq;
004.using System.Web;
005.using System.Web.UI;
006.using System.Web.UI.WebControls;
007.using System.Data.SqlClient;
008.using System.Data;
009.using System.Configuration;
010. 
011.namespace Dentist
012.{
013.    public partial class Staff : System.Web.UI.Page
014.    {
015.        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Dentist_Pool"].ConnectionString);
016. 
017.        SqlDataAdapter da = null;
018.        DataTable dt = null;
019. 
020.        protected void Page_Load(object sender, EventArgs e)
021.        {
022.        }
023. 
024.        protected void btnStaffsubmit_Click(object sender, EventArgs e)
025.        {
026.            IsStaffdate(txtStaffid.Text);
027.        }
028.        protected void IsStaffdate(string staffid)
029.        {
030.            con.Open();
031. 
032.            String sqlSelect = "select StaffId from Staffdate where StaffId = @staffid";
033.            SqlCommand com = new SqlCommand(sqlSelect, con);
034. 
035.            com.Parameters.AddWithValue("@staffid", txtStaffid.Text);
036. 
037.            using (IDataReader reader = com.ExecuteReader())
038.            {
039.                while (reader.Read())
040.                {
041.                    Session["sessionStaffId"] = reader.GetInt32(0);
042.                    break;
043.                }
044.                reader.Close();
045.                con.Close();
046. 
047.                con.Open();
048.                String sqlSelect2 = "select StaffdateId, StaffLeaveStart, StaffLeaveFinish, StaffTimeStart, StaffTimeFinish, StaffLeaveNote from Staffdate where StaffId = '" + Session["sessionStaffId"] + "'";
049.                da = new SqlDataAdapter(sqlSelect2, con);
050.                con.Close();
051. 
052.            }
053. 
054.            //con.Open();
055.            //String sqlSelect = "select StaffdateId, StaffLeaveStart, StaffLeaveFinish, StaffTimeStart, StaffTimeFinish, StaffLeaveNote from Staffdate where StaffId = @staffid";
056.            ////SqlCommand com = new SqlCommand();
057.            ////com.Parameters.AddWithValue("@staffid", txtStaffid.Text);
058. 
059.            //da = new SqlDataAdapter(sqlSelect, con);
060.            //con.Close();
061. 
062.            BindData();
063.        }
064. 
065.        void BindData()
066.        {
067.            dt = new DataTable();
068.            da.Fill(dt);
069.            grdStaffdate.DataSource = dt;
070.            grdStaffdate.DataBind();
071. 
072.            dt = null;
073.            con.Close();
074.        }
075. 
076.        void Page_Unload()
077.        {
078.            con.Close();
079.            con = null;
080.        }
081. 
082.        protected void modEditCommand(object sender, GridViewEditEventArgs e)
083.        {
084.            Label lblStaffLeaveStart = (sender as GridView).Rows[e.NewEditIndex].FindControl("lbllblStaffLeaveStartt") as Label;
085.            Label lblStaffLeaveFinish = (sender as GridView).Rows[e.NewEditIndex].FindControl("lblStaffLeaveFinish") as Label;
086.            Label lblStaffTimeStart = (sender as GridView).Rows[e.NewEditIndex].FindControl("lblStaffTimeStart") as Label;
087.            Label lblStaffTimeFinish = (sender as GridView).Rows[e.NewEditIndex].FindControl("lblStaffTimeFinish") as Label;
088.            Label lblStaffLeaveNote = (sender as GridView).Rows[e.NewEditIndex].FindControl("lblStaffLeaveNote") as Label;
089. 
090.            grdStaffdate.EditIndex = e.NewEditIndex;
091.            grdStaffdate.ShowFooter = false;
092.            BindData();
093. 
094.            TextBox txtEditLeaveStart = (sender as GridView).Rows[e.NewEditIndex].FindControl("txtEditLeaveStart") as TextBox;
095.            TextBox txtEditLeaveFinish = (sender as GridView).Rows[e.NewEditIndex].FindControl("txtEditLeaveFinish") as TextBox;
096.            DropDownList ddlEditTimeStart = (sender as GridView).Rows[e.NewEditIndex].FindControl("ddlEditTimeStart") as DropDownList;
097.            DropDownList ddlEditTimeFinish = (sender as GridView).Rows[e.NewEditIndex].FindControl("ddlEditTimeFinish") as DropDownList;
098.            TextBox txtEditLeaveNote = (sender as GridView).Rows[e.NewEditIndex].FindControl("txtEditLeaveNote") as TextBox;
099. 
100.            txtEditLeaveStart.Text = lblStaffLeaveStart.Text;
101.            txtEditLeaveFinish.Text = lblStaffLeaveFinish.Text;
102.            ddlEditTimeStart.Text = lblStaffTimeStart.Text;
103.            ddlEditTimeStart.Text = lblStaffTimeFinish.Text;
104.            txtEditLeaveNote.Text = lblStaffLeaveNote.Text;
105.        }
106.        protected void modCancelCommand(object sender, GridViewCancelEditEventArgs e)
107.        {
108.            grdStaffdate.EditIndex = -1;
109.            grdStaffdate.ShowFooter = false;
110.            BindData();
111.        }
112.        protected void modDeleteCommand(object sender, GridViewDeleteEventArgs e)
113.        {
114.            con.Open();
115.            String sqlDelete = "delete from Staffdate where StaffdateId = '" + grdStaffdate.DataKeys[e.RowIndex].Value + "'";
116.            SqlCommand com = new SqlCommand(sqlDelete, con);
117.            com.ExecuteNonQuery();
118.            con.Close();
119. 
120.            grdStaffdate.EditIndex = -1;
121.            BindData();
122.        }
123.        protected void modUpdateCommand(object sender, GridViewUpdateEventArgs e)
124.        {
125.            TextBox txtEditLeaveStart = (TextBox)grdStaffdate.Rows[e.RowIndex].FindControl("txtEditLeaveStart");
126.            TextBox txtEditLeaveFinish = (TextBox)grdStaffdate.Rows[e.RowIndex].FindControl("txtEditLeaveFinish");
127.            DropDownList ddlEditTimeStart = (DropDownList)grdStaffdate.Rows[e.RowIndex].FindControl("ddlEditTimeStart");
128.            DropDownList ddlEditTimeFinish = (DropDownList)grdStaffdate.Rows[e.RowIndex].FindControl("ddlEditTimeFinish");
129.            TextBox txtEditLeaveNote = (TextBox)grdStaffdate.Rows[e.RowIndex].FindControl("txtEditLeaveNote");
130.             
131.            con.Open();
132.            String sqlUpdate = "update Staffdate set StaffLeaveStart = '" + txtEditLeaveStart.Text + "'" + " , StaffLeaveFinish = '" + txtEditLeaveFinish.Text + "'" + " , StaffTimeStart = '" + ddlEditTimeStart.Text + "'"
133.                + " , StaffTimeFinish ='" + ddlEditTimeFinish.Text + "'" + " , StaffLeaveNote = '" + txtEditLeaveNote.Text + "'" + " where StaffId = '" + grdStaffdate.DataKeys[e.RowIndex].Value + "'";
134.            SqlCommand com = new SqlCommand(sqlUpdate, con);
135.            com.ExecuteNonQuery();
136.            con.Close();
137. 
138.            grdStaffdate.EditIndex = -1;
139.            grdStaffdate.ShowFooter = true;
140.            BindData();
141.        }
142.        protected void modRowCommand(object sender, GridViewCommandEventArgs e)
143.        {
144.            if (e.CommandName == "Add")
145.            {
146.                TextBox txtAddLeaveStart = (TextBox)grdStaffdate.FooterRow.FindControl("txtAddLeaveStart");
147.                TextBox txtAddLeaveFinish = (TextBox)grdStaffdate.FooterRow.FindControl("txtAddLeaveFinish");
148.                DropDownList ddlAddTimeStart = (DropDownList)grdStaffdate.FooterRow.FindControl("ddlAddTimeStart");
149.                DropDownList ddlAddTimeFinish = (DropDownList)grdStaffdate.FooterRow.FindControl("ddlAddTimeFinish");
150.                TextBox txtAddLeaveNote = (TextBox)grdStaffdate.FooterRow.FindControl("txtAddLeaveNote");
151. 
152.                con.Open();
153.                String sqlInsert = "insert into Staffdate (StaffLeaveStart, StaffLeaveFinish, StaffTimeStart, StaffTimeFinish, StaffLeaveNote)" +
154.                    "values ('" + txtAddLeaveStart.Text + "','" + txtAddLeaveFinish.Text + "','"+ ddlAddTimeStart.Text + "','" + ddlAddTimeFinish.Text + "', '" + txtAddLeaveNote.Text + "')";
155.                SqlCommand com = new SqlCommand(sqlInsert,con);
156.                com.ExecuteNonQuery();
157.                con.Close();
158. 
159.                BindData();
160.            }
161.        }
162. 
163.     
164.        protected void btnStaffcancel_Click(object sender, EventArgs e)
165.        {
166.            txtStaffid.Text = "";
167.        }
168. 
169.        protected void btnStaffAdd_Click(object sender, EventArgs e)
170.        {
171.            Response.Redirect("~/Clinic/StaffAdd.aspx");
172.        }
173.    }
174.}




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 : 1462 Reply : 2
 

 

No. 1

Guest


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

พอดีว่าเพิ่งหัดเขียนก็เลยยังไม่ค่อยรู้เรื่องเท่าไร
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-01-25 17:10:32 By : ...
 

 

No. 2



โพสกระทู้ ( 74,059 )
บทความ ( 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 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)





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