• 0
*areej*

خطأ برمجي

سؤال

السلام عليكم ورحمة الله وبركاته

تظهرلي مشكله مو عارفه ليش مايتعرف على اداة تيكست بوكس

الكود هو :


public void save_Anser()
{
string proj = Request.QueryString["pr_Id"];
SqlConnection conn = new SqlConnection();
conn.ConnectionString = ConfigurationManager.ConnectionStrings["Connectionstring2"].ConnectionString;
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "select Q_Id from Questions where Project_Id='" + proj + "' order by Q_Id DESC ";
SqlDataReader rd = default(SqlDataReader);
rd = cmd.ExecuteReader();
rd.Read();
int id_q = 0;
if (rd.HasRows)
{
rd.Close();
id_q = (Int32)cmd.ExecuteScalar();

}
else
{
id_q = 1;
}
rd.Close();

cmd.Connection = conn;

for (int i = 1; i <= int.Parse(NuAns.SelectedItem.Value.ToString()); i++)
{
string ans = "Anser" + i.ToString();
string aaaaa = ((TextBox)this.FindControl("Anser1")).Text;
string id_ = id_q.ToString();
string pro = proj.ToString();
// string[] data = {ans1.Text,"0",id_q.ToString(),proj.ToString()};
// b.insertRow("Ansers",data,4);
//cmd.CommandText = "INSERT INTO Ansers (Anser1,Anser2,Q_Id,Project_Id) VALUES(@Anser1,@Anser2,@Q_Id,@Project_Id)";
//cmd.Parameters.Clear();
//cmd.Parameters.AddWithValue("Anser1", ans1);
//cmd.Parameters.AddWithValue("Anser2", "0");
//cmd.Parameters.AddWithValue("Q_Id", id_q);
//cmd.Parameters.AddWithValue("Project_Id", proj);
//cmd.ExecuteNonQuery();

}
conn.Close();

}

نص الخطأ :

Object reference not set to an instance of an object.

سطر الخطأ :


string aaaaa = ((TextBox)this.FindControl("Anser1")).Text;

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

15 إجابة على هذا السؤال .

  • 0

يعني انه الاداة Anser1 غير موجودة في الصفحة مباشرة .

لذا نرجو وضع الكود الخاص بالاداة .

وهنا الحديث عن asp.net ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يعني انه الاداة Anser1 غير موجودة في الصفحة مباشرة .

لذا نرجو وضع الكود الخاص بالاداة .

وهنا الحديث عن asp.net ؟

جزاك الله اخوي على الرد

غريب مع انو الأداة موجوده في نفس الصفحه


<asp:TextBox ID="Anser1" runat="server" Visible="false"></asp:TextBox>

لم اعرف اين الخطأ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مافي احد يقدر يساعدني في دي المشكله :(

أين المبرمجيين :( :(

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

المشكلة في Visible="false"

جربي بدل استخدام label استخدمي HiddenField .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

أختي جربي الكود دا

string aaaaa = (this.FindControl("Anser1") As TextBox).Text;

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اذا كان هذا داخل repeater عليكي فحص نوع السطر اذا كان header او item او edit

ارفقي كل الصفحة لنفهم اين المشكلة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

المشكلة في Visible="false"

جربي بدل استخدام label استخدمي HiddenField .

مافهمت اين المشكله .. انا مو مستخدمه label .. انا مستخدمة textbox

السلام عليكم

أختي جربي الكود دا

string aaaaa = (this.FindControl("Anser1") As TextBox).Text;

الله يعطيك العافيه اخوي جربت الكود بس مازبط نفس المشكله

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الله يعطيكم العافيه

هذا الملف ارفقته ارجو مساعدتي

للأسف صفحة التصميم مو راضيه تترفع شكلو عشان الحجم :(

تقدروا تساعدوني بدون ما ارفقها !!

SystemQue.aspx.cs

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أختي بالنسبة للتكست بوكس اذا كان موجود في Master Page

جربي الكود التالي

string aaaaa = (this.master.FindControl("Anser1") as TextBox).Text;

لأنه انتي كاتبة (this) بدون تحديد اذا كان Master Page او Page

أتمنى اذا فيه إمكان إرفاق صفحة التصميم عشان نتأكد حتى لو كان الحجم كبير ارفعيه على (MediaFire) وحطي الرابط هنا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

عند وجود ماستر بيج يختلف الوضع لذا انصح بالنظر الى المقالة التالية :

http://www.west-wind.com/weblog/posts/2006/Apr/09/ASPNET-20-MasterPages-and-FindControl

وباختصار استخدمي الكود التالي :


private Control FindControlRecursive(Control Root, string Id)

{

if (Root.ID == Id)

return Root;



foreach (Control Ctl in Root.Controls)

{

Control FoundCtl = FindControlRecursive(Ctl, Id);

if (FoundCtl != null)

return FoundCtl;

}



return null;

}

وللبحث عن اداة نستخدم


string aaaaa = (FindControlRecursive(this.Master,"Anser1") as TextBox).Text ;

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الله يعطيكم العافيه بس textbox مو موجود في الماستر موجود في نفس الصفحه

احاول ارفق صفحه التصميم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لم تضعي رابط صحيح للملف .

والافضل ضغط الملف ورفعه على المنتدى .

وجربي الطريقة في ردي السابق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مربع النص موجود في عدة ادوات لذا اسهل طريقة هي التي ذكرتها لك سابقا

string aaaaa = (FindControlRecursive(this.Master,"Anser1") as TextBox).Text ;

فهل جربتها ؟؟؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .