الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Datatable

مغلق
بدأه محمد الهباش في 2 يناير 2008 · 19 رد · 1,984 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لدي كود في c# مع asp.net للإضافة الى datatable اريد التأكد من انه ينجح في الإضافة مع العلم اني اول مرة استعمل datatable الكود هو كالتالي

	{
																Buing_cart=Session["cart"];
				myDataRow = Buing_cart.NewRow();
				myDataRow["id"] = ii;
				myDataRow[1]=ii;
				myDataRow["name"] = TextBox1.Text + ii.ToString();;
				myDataRow["price"] = TextBox2.Text;
				myDataRow["qty"] = TextBox3.Text;
				Buing_cart.Rows.Add(myDataRow);

			}			
				Session["cart"]=Buing_cart;
				DataGrid1.DataSource=Buing_cart;

				DataGrid1.DataBind();

طبعا ال ii هو متغير وهناك ايضا مشكلة اخرى هو ان الsession لا يقبل بأن تكون datatable يريدها ان تكون object كي يستطيع ان يحفظها واستطيع ان استدعيها في اي مكان اخر بالموقع

طبعا هو يخزن قيمة واحدة وهي التي اخزنها في حالة اني ضغطت على زر الإدخال ومن ثم عند الإنتقال لسلعة اخرى لشرائها اجد ان الأولى طارت

انا طبعا اعرض النتائج على data grid لكي اتأكد فهي مشكلة معقدة نوعا ما وارجو الرد من الأخوة .

في النهاية اريد ان اعلم هل هناك اي نقص في الكود ام ان احدا عندما سيرى الكود سيضحك علي مع العلم اني رأيت الكثير من الأكواد بنفس الصورة ؟؟؟؟

نموت وتحيا ...................فلسطين .

#2
datatable = (DataTable)Session["aa"];
datarow = datatable.NewRow();

datarow["Id"]= 1;

datarow["Name"]= "hh";
datatable.Rows.Add(datarow);

Session["aa"]= datatable;

GridView1.DataSource = datatable;

GridView1.DataBind();

اخي شوف الملف المرفق ممكن يفيدك

WebSite20.zip

تم تعديل هذه المشاركة بواسطة c++2003 في 3 يناير 2008 في 04:54

abdullahf4.jpg
#3

بالنسبة للكود

اقتباس
datatable = (DataTable)Session["aa"];
datarow = datatable.NewRow();

datarow["Id"]= 1;

datarow["Name"]= "hh";
datatable.Rows.Add(datarow);

Session["aa"]= datatable;

GridView1.DataSource = datatable;

GridView1.DataBind();

يجب ان يكون بهذه الصورة

				if (!(Buing_cart.Rows.Count==0))
				{
					Buing_cart=(DataTable)Session["cart"];
				}
				else 
				{
					myDataRow = Buing_cart.NewRow();
					myDataRow["id"] = ii;
					myDataRow[1]=ii;
					myDataRow["name"] = TextBox1.Text + ii.ToString();;
					myDataRow["price"] = TextBox2.Text;
					myDataRow["qty"] = TextBox3.Text;
					Buing_cart.Rows.Add(myDataRow);
					Buing_cart.AcceptChanges();
					//Buing_cart.
				}
			}			
				Session["cart"]=Buing_cart;
				DataGrid1.DataSource=Buing_cart;

				DataGrid1.DataBind();

لأنه عند اضافة اول عنصر لااح يلاقي انو الكارت فارغة ومش راح يقدؤ يضيف عليها لازم يفحص انو السيشن في على الأقل حاجة لأنو حيكون فارغ لو ما فحص وحيعطي خطأ

على العموم الكود لم يعمل وانا بستعمل 2003

انا اقصد انو الإختلاف فقط يجب ان يكون الفحص وتجاهل باقي الكود

نموت وتحيا ...................فلسطين .

#4

اخي لو ما قمت بفحص السشن انو فيها او لا مارح يعطيك خطاء

بالكود الي كتبيه ما فحصت وما بعطي اي خطاء

abdullahf4.jpg
#5

اوكي بس انا احتاج حل لمشكلتي رجاء

وبعدين انت تستعمل 2005 على ما اعتقد

ممكن انو تكون متطورة اكثر بحيث لا تخرج لك الأخطاء

نموت وتحيا ...................فلسطين .

#6

نفسي سؤال يجاب من اول يوم

نموت وتحيا ...................فلسطين .

#7

الرد يا شباب الرد ؟؟

نموت وتحيا ...................فلسطين .

#8
 void Session_Start(object sender, EventArgs e) 
	{
		DataTable dt = new DataTable("Table");
		DataColumn datacolumn = new DataColumn("Id", System.Type.GetType("System.Int32"));
		dt.Columns.Add(datacolumn);
		datacolumn = new DataColumn("Name", System.Type.GetType("System.String"));
		dt.Columns.Add(datacolumn);
		Session["aa"] = dt;


	}

السلام عليكم

ضع هذا الكود في global.asax

هيك رح تقدر تستخدم الكرت

abdullahf4.jpg
#9

انا مش فاهم شي

نموت وتحيا ...................فلسطين .

#10

ايش الي مش مفهوم

abdullahf4.jpg
#11

شو دخل السيشون ستارت بالموضوع ؟

نموت وتحيا ...................فلسطين .

#12

انا وضعتها في السشن ستارت حتى اقوم بانشاء datatable حتى اتمكن من الاضافه عليها

وهيك ما بتضيع البيانات

او ممكن تضعها الحدث load

مثل مابدك انت جربها

abdullahf4.jpg
#13

انا الفكرة عندي انو بختار سلعة من داتا جريد وبيروح على صفحة الشراء وبعدين بيختارها ليشوف باقي مواصفاتها وصورتها ويـتأكد انو هيا المطلوبة ويحطها في السلة وهنا تأتي المشكلة

وهذا هو كود الكامل لصفحة الوضع في السلة ارجو الرد

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlTypes;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Configuration;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace Estore
{
	/// <summary>
	/// Summary description for buyemerchandise.
	/// </summary>
	public class buyemerchandise : System.Web.UI.Page
	{
		protected System.Web.UI.WebControls.Label Label1;
		protected System.Web.UI.WebControls.Label Label2;
		protected System.Web.UI.WebControls.Image Image1;
		protected System.Web.UI.WebControls.Label Label4;
		protected System.Web.UI.WebControls.TextBox TextBox3;
		protected System.Web.UI.WebControls.TextBox TextBox2;
		protected System.Web.UI.WebControls.TextBox TextBox1;
		protected System.Web.UI.WebControls.Button Button1;
		protected System.Web.UI.WebControls.Button Button2;
		protected System.Web.UI.WebControls.Label Label5;
		protected System.Web.UI.WebControls.LinkButton LinkButton1;
		protected System.Web.UI.WebControls.Button Button3;
		protected System.Web.UI.WebControls.Button Button4;
		protected System.Web.UI.WebControls.Label Label3;
		protected System.Web.UI.WebControls.Label Label6;
		protected System.Web.UI.WebControls.DataGrid DataGrid1;
		protected System.Web.UI.WebControls.TextBox TextBox4;
		DataColumn myDataColumn,myDataColumn1,myDataColumn2,myDataColumn3;
		DataRow myDataRow;
		protected System.Web.UI.WebControls.Button Button5;
		protected System.Web.UI.WebControls.TextBox TextBox5;
		System.Data.DataTable Buing_cart;
	انشاء السلة 
		public void Creat_data_table()
		{
			Buing_cart =new DataTable("Buing_cart");


			myDataColumn =new DataColumn();
			myDataColumn.DataType=System.Type.GetType("System.Int32");			
			myDataColumn.ColumnName="id";
			myDataColumn.AutoIncrement=true;
			myDataColumn.AutoIncrementSeed=1;
			Buing_cart.Columns.Add(myDataColumn);
			//////////////////////////////////////////////////////////////
			myDataColumn1=new DataColumn();
			myDataColumn1.DataType=System.Type.GetType("System.String");
			myDataColumn1.ColumnName="name";
			myDataColumn1.AutoIncrement=false;
			myDataColumn1.Unique=false;
			Buing_cart.Columns.Add(myDataColumn1);
			//////////////////////////////////////////////////////////////
			///
			myDataColumn2=new DataColumn();
			myDataColumn2.DataType=System.Type.GetType("System.String");
			myDataColumn2.ColumnName="price";
			myDataColumn2.AutoIncrement=false;
			myDataColumn2.Unique=false;
			Buing_cart.Columns.Add(myDataColumn2);
			/////////////////////////////////////////////////////////
			///
			myDataColumn3=new DataColumn();
			myDataColumn3.DataType=System.Type.GetType("System.String");
			myDataColumn3.ColumnName="qty";
			myDataColumn3.AutoIncrement=false;
			myDataColumn3.Unique=false;
			Buing_cart.Columns.Add(myDataColumn3);
			Label6.Text="done";

		}

		SqlConnection conn;
		public void Connectiontodb()
		{
			conn=new SqlConnection(ConfigurationSettings.AppSettings["cnStr"]);
			conn.Open();

		}
		SqlDataReader dr1;
		int id1,number;	
	اختيار السلعة لوضعها في التيكست بوكسيس 
		public void selectfrommerchandise()
		{
			id1=Convert.ToInt32(Request.QueryString["m_id"]);
			Session["tempid"]=id1;
			SqlCommand cmd;
			string sql;
			sql ="Select * from merchandise where m_id='"+id1+"'";
			cmd=new SqlCommand(sql,conn);

			dr1 = cmd.ExecuteReader();
			while(dr1.Read())

			{

				TextBox1.Text=dr1["m_id"].ToString();
				TextBox2.Text=dr1["m_name"].ToString();
				TextBox3.Text=dr1["m_price"].ToString();
			}

			dr1.Close();

		}
		int tmpid;



		private void Page_Load(object sender, System.EventArgs e)
		{


			Connectiontodb();

			selectfrommerchandise();

			count();

				Creat_data_table();

		}

		#region Web Form Designer generated code
		override protected void OnInit(EventArgs e)
		{
			//
			// CODEGEN: This call is required by the ASP.NET Web Form Designer.
			//
			InitializeComponent();
			base.OnInit(e);
		}

		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// </summary>
		private void InitializeComponent()
		{	
			this.Button1.Click += new System.EventHandler(this.Button1_Click);
			this.Button2.Click += new System.EventHandler(this.Button2_Click);
			this.Button3.Click += new System.EventHandler(this.Button3_Click);
			this.Button4.Click += new System.EventHandler(this.Button4_Click);
			this.Button5.Click += new System.EventHandler(this.Button5_Click);
			this.Load += new System.EventHandler(this.Page_Load);

		}
		#endregion

		public void add_to_cart()
		{
			TextBox4 .Text= TextBox1.Text;
			myDataRow = Buing_cart.NewRow();
			myDataRow["id"] = ii;
			myDataRow[1]=ii;
			myDataRow["name"] = TextBox1.Text + ii.ToString();;
			myDataRow["price"] = TextBox2.Text;
			myDataRow["qty"] = TextBox3.Text;
			Buing_cart.Rows.Add(myDataRow);
			Buing_cart.AcceptChanges();


			Session["cart"]=Buing_cart;
			DataGrid1.DataSource=Buing_cart;

			DataGrid1.DataBind();
		}


		private void Button1_Click(object sender, System.EventArgs e)
		{


		}




	}
}

وهنا المشكلة لا يخزن إلا العنصر الذي اضفته فقط وبعدها يفقده رأيت شخص يضع كود انشاء السلة داخل شرط isnotpostback

وحاولت ان اعمل القصة اطلعلي خطأ

نموت وتحيا ...................فلسطين .

#14

هلا أخي محمد

معلش أحكي بصراحة B)

انا لحد الان لم افهم المشكلة والكود السابق غير مرتب وغير مفهوم من أجل ذلك لو تفضلت ووضعت الكود (الملفات)

ونحن ان شاء الله سوف نحاول ان نساعدك ولن نبخل عليك :rolleyes:

وانا اسف على التأخير -_-

تم تعديل هذه المشاركة بواسطة محمد سماقية في 10 يناير 2008 في 17:49

-----------------------------------------------------------------------------------------------------------------------------





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#15

اولا : من ناحية هو بالفعل غير مرتب

ثانيا : بسيطه اخي المشكلة انني لا استطيع الإضافة الى الكارت

ثالثا : هذا هو الكود

انا سوف اضع لك الكود كما هو في الصفحة هذا هو

public class buyemerchandise : System.Web.UI.Page
	{
		DataColumn myDataColumn,myDataColumn1;
		DataRow myDataRow;
		System.Data.DataTable Buing_cart;
	انشاء السلة 
		public void Creat_data_table()
		{
			Buing_cart =new DataTable("Buing_cart");
			myDataColumn =new DataColumn();
			myDataColumn.DataType=System.Type.GetType("System.Int32");			
			myDataColumn.ColumnName="id";
			myDataColumn.AutoIncrement=true;
			myDataColumn.AutoIncrementSeed=1;
			Buing_cart.Columns.Add(myDataColumn);
			//////////////////////////////////////////////////////////////
			myDataColumn1=new DataColumn();
			myDataColumn1.DataType=System.Type.GetType("System.String");
			myDataColumn1.ColumnName="name";
			myDataColumn1.AutoIncrement=false;
			myDataColumn1.Unique=false;
			Buing_cart.Columns.Add(myDataColumn1);

		}
الربط بقاعدة البيانات
		SqlConnection conn;
		public void Connectiontodb()
		{
			conn=new SqlConnection(ConfigurationSettings.AppSettings["cnStr"]);
			conn.Open();

		}
		SqlDataReader dr1;
		int id1,number;	
	اختيار السلعة لوضعها في التيكست بوكسيس 
		public void selectfrommerchandise()
		{
			id1=Convert.ToInt32(Request.QueryString["m_id"]);
			Session["tempid"]=id1;
			SqlCommand cmd;
			string sql;
			sql ="Select * from merchandise where m_id='"+id1+"'";
			cmd=new SqlCommand(sql,conn);
			dr1 = cmd.ExecuteReader();

			while(dr1.Read())
			{
				TextBox1.Text=dr1["m_id"].ToString();
				TextBox2.Text=dr1["m_name"].ToString();
			}
			dr1.Close();
		}
		int tmpid;

		private void Page_Load(object sender, System.EventArgs e)
		{
			Connectiontodb();
			selectfrommerchandise();
			count();
			Creat_data_table();
		}
هنا المشكلة لا يتم التخزين في السلة طبعا هذا الكود يوضع ففي حدث الbutton 
		public void add_to_cart()
		{
			TextBox4 .Text= TextBox1.Text;
			myDataRow = Buing_cart.NewRow();
			myDataRow["id"] = ii;
			myDataRow["name"] = TextBox1.Text + ii.ToString();;
			Buing_cart.Rows.Add(myDataRow);
			Session["cart"]=Buing_cart;
			DataGrid1.DataSource=Buing_cart;
			DataGrid1.DataBind();
		}

نموت وتحيا ...................فلسطين .

#16
	protected void Page_Load(object sender, EventArgs e)
	 {
			Connectiontodb();
			selectfrommerchandise();
		try
		 {
			 Buing_cart = (System.Data.DataTable)Session["cart"];
			 if (Buing_cart == null)
			 {
				 Creat_data_table();
			 }
		 }
		 catch (Exception)
		 {

			 Creat_data_table();
		 }
	 }

	public void add_to_cart()
	  {
		  myDataRow = Buing_cart.NewRow();
		  myDataRow["name"] = TextBox1.Text.ToString() + myDataRow["id"].ToString();
		  Buing_cart.Rows.Add(myDataRow);
		  Session["cart"] = Buing_cart;
		  DataGrid1.DataSource = Buing_cart;
		  DataGrid1.DataBind();
	  }

WebSite15.zip

تم تعديل هذه المشاركة بواسطة محمد سماقية في 11 يناير 2008 في 15:25

-----------------------------------------------------------------------------------------------------------------------------





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#17

اخي الكود البرمجي هذا

Buing_cart = (System.Data.DataTable)Session["cart"];

عندما افعله لا ينشيء ال الأعمدة اصلا ويطلع لي خطأ

انا استمعل 2003

نموت وتحيا ...................فلسطين .

#18
محمد الهباش كتب:
اخي الكود البرمجي هذا

Buing_cart = (System.Data.DataTable)Session["cart"];

عندما افعله لا ينشيء ال الأعمدة اصلا ويطلع لي خطأ

انا استمعل 2003

انا عندي 2005 وشغال

على كل حال أخي شو هو الغلط يعني شو رسالة الخطأ

تم تعديل هذه المشاركة بواسطة محمد سماقية في 12 يناير 2008 في 02:18

-----------------------------------------------------------------------------------------------------------------------------





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#19

B) طيب سؤال ليش مابتستخدم 2005 يعني صار العالم تحول عالـ2008 وانت لسى عالـ2003؟؟؟؟؟ -_-

-----------------------------------------------------------------------------------------------------------------------------





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#20

انا مش كل ما راح تجي لغة جديدة او بيئة جديدة لحتى انتقل الها انا ما بصدق اتعود عليها .

نموت وتحيا ...................فلسطين .

هذا الموضوع مغلق.

مواضيع مشابهة