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

مساعدة في عملية الinsert

مغلق
بدأه web.pro في 3 أكتوبر 2007 · 9 رد · 1,223 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

لدي مشكلة في عملية الinsert

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

هذا هو كود الinsert

 const string STR_SQL_USER_INSERT = "INSERT INTO cus_info(id,name,price,rest) VALUES(@0,@1,@2,@3)";

				OleDbConnection cnnUserMan;

				OleDbDataAdapter dadUser;
				DataSet dstUser;


				OleDbCommand cmmUserInsert;
				OleDbCommand cmmUserupdate;

				cnnUserMan = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=new.mdb");
				cnnUserMan.Open();
				OleDbCommand command = new OleDbCommand("Select * From cus_info ", cnnUserMan);


				OleDbCommand command2 = new OleDbCommand("Select max(id)  from cus_info group by id", cnnUserMan);
				int id1=0;




				OleDbDataReader reader1 = command2.ExecuteReader();

				while (reader1.Read())
				{

					id1 = (int)reader1[0];
				}




				cmmUserInsert = new OleDbCommand(STR_SQL_USER_INSERT, cnnUserMan);
				// cmmUserupdate = new OleDbCommand(STR_SQL_USER_update, cnnUserMan);


				dstUser = new DataSet();

				dadUser = new OleDbDataAdapter();

			try{

				dadUser.InsertCommand = cmmUserInsert;
				//dadUser.UpdateCommand = cmmUserupdate;

				dadUser.InsertCommand.Parameters.AddWithValue("@0", id1);
				dadUser.InsertCommand.Parameters.AddWithValue("@1", textBox1.Text);

				dadUser.InsertCommand.Parameters.AddWithValue("@2", numericUpDown3.Value);
				dadUser.InsertCommand.Parameters.AddWithValue("@3", numericUpDown5.Value);

				dadUser.InsertCommand.ExecuteNonQuery();

أرجو أن تساعدوني علمأ ام الid ليس ترقيم تلقائي

تم تعديل هذه المشاركة بواسطة web.pro في 3 أكتوبر 2007 في 22:40

#2

والله مستعجل يا شباب

#3

بسم الله الرحمن الرحيم

وبه نستعين

لم أفهم

ممكن شرح اكثر ؟

وماهي ال stored procedure التى تستخدمها في الدخال والتعديل ؟

والسلام عليكم

MCSD

#C

#4

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

هل يوجد طريقة اخرى غير هذا الكود

#5

طيب اذابدي اسوي عملية hnsertعلى جدول والقيم تكون من الواجهة

كيف بحدد الid وهو primary key

وشكرا

#6

وااله عاوز الكود ضروري جدا

#7

وين الردود

#8
اقتباس
هل يوجد طريقة اخرى غير هذا الكود

أنا مش مبرمج C# وهذه أول مرة في حياتي أكتب برنامج C#. لكني نجحت في إضافة سجل جديد إلى جدول أحد حقوله تسلسلي ولكنه ليس ترقيم تلقائي.. بنفس الطريقة التي نستخدمها في VB والتي تستخدمها أنت أيضاً.

يتضح لي من سؤالك أن المشكلة مشكلة INSERT. إذن لماذا لا تستخدم منشيء جمل SQL وهو OleDbCommandBuilder ؟ هذا Class ينشأ لك جمل SQL بالتغييرات التي حصلت على سجلات أي جدول DataTable (في هذه الحالة "إضافة").

في المثال المرفق:

1- مشروع C# ;) يتصل بقاعدة بيانات بها جدول أحد حقوله تسلسلي ولكنه ليس ترقيم تلقائي (الحقل ID).

2- يستخدم المشروع OleDbCommandBuilder لبناء جمل INSERT تلقائياً ثم يحدّث الجدول وقاعدة البيانات.

الرجاء التجريب وأتمنى أن يفيدك... هو ليس الجواب الشافي لسؤالك ولكني حبيت أبين لك أن هناك طريقة تلقائية لبناء جمل SQL بالتغييرات التي تحصل للجداول.

أخوك.

ADO_NET_CSharp_Inserting_Rows.zip

تم تعديل هذه المشاركة بواسطة Adel_N في 8 أكتوبر 2007 في 20:03

In order to understand recursion, one must first understand recursion

alawfiadel@yahoo.com

#9

السلام عليكم

هذا كود لعمليه ال insert

string sql = "insert into Books (Isbn,Book_title,Date_of_publication,Edition)values" + 
"(@Isbn,@Book_title,@Date_of_publication,@Edition)";   
			try
			{
				SqlConnection con = new SqlConnection(constring);
				SqlCommand cmd = new SqlCommand(sql, con);
				cmd.Parameters.AddWithValue("@Isbn", TextBIsbn.Text);
				cmd.Parameters.AddWithValue("@Book_title", TextBTitle.Text);
				cmd.Parameters.AddWithValue("@Date_of_publication", DateTimePicker1.Text);
				cmd.Parameters.AddWithValue("@Edition", DomainUpDown1.Text);


				cmd.Connection.Open();
				cmd.ExecuteNonQuery();
				cmd.Connection.Close();

			}

			catch (Exception ex)
			{
				LabError.Text = ex.Message;
			}

		}
#10

ارى ان الخطأ عندك هو في عدم اضافة واحد للقيمة القصوى

............

int id1=0;

OleDbDataReader reader1 = command2.ExecuteReader();

while (reader1.Read())

{

id1 = (int)reader1[0];

}

الكود المطلوب

id1++ ;

............

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

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