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

رسالة خطأ

بدأه yasser_2005 في 25 مارس 2009 · 3 رد · 485 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

عندى مشكلة و لا اعرف حلا لها حتى هذه اللحظة و احب ان تشاركونى لماذا يظهر هذا الخطأ و كيفية الحل

لدى جدول عبارة عن حقلين حقل DepID - DepName و الأن اقوم بالتعديل عليه عن طريق الكود الأتى

im con As New OleDbConnection

con.ConnectionString = "Provider=Microsoft.Jet.OleDB.4.0;data source=" & Server.MapPath("data/project.mdb")

con.Open()

Dim cmdselect As New OleDbCommand

cmdselect.Connection = con

cmdselect.CommandType = CommandType.Text

cmdselect.CommandText = "Update Department Set DepID =" & CInt(textbox1.Text.Tostring) & " , DepName='" & textbox2.text & "' where DepID=" & drop.selectedValue & ""

cmdselect.ExecuteNonQuery()

TextBox1.Text=""

TextBox2.Text=""

Con.Close

رسالة الخطأ :Input string was not a correct format

و برغم من ظهور هذه الرسالة يحدث التعديل سواء فى حقل DepName او حقل DepID

e8b527017e7cf2ad7d9b1d0ce6731b93.gif

#2

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

الخطأ غير واضح .. لو حبذا ترفق لنا مشروعك بشكل مصغر.. لكي تتضح الصورة وباذن الله راح تشوف الجواب

لانه المسالة هي فقط كتابة جملة السكيول بشكل صحيح ...

لو تلاحظ رسالة الخطأ انه الانبوت اي المدخل غير صحيح ..

فتأكد من نوع الحقل لديك.. هل يتطابق مع نوع المدخل. او لا .. فمثلا ادخلت قيمة ستررنق إلى حقل من نوع انتجر .. فهذا راح يعطيك خطأ مباشرة ..

لو تحب جواب مباشر بدون تاخير وضح كل شيء في مشروعك لكل تحصل على حل ..

تحياتي لك

#3

الخطأ هنا

cmdselect.CommandText = "Update Department Set DepID =" & CInt(textbox1.Text.Tostring)

أنت تحاول أن تجمع متغير نصي مع متغير رقمي. يجب تحويل المتغير الرقمي إلى نص أولاً. و يكون أفضل أيضاً لو أنك تستغني عن طريق إنتاج جمل الـSQL عن طريق تربيط النصوص مع القيم هذه و استخدام البرامترز parameters لإدخال القيم لأن هذا أفضل على المدى الطويل أمنياً و برمجياً.

#4
System Down كتب:
الخطأ هنا

cmdselect.CommandText = "Update Department Set DepID =" & CInt(textbox1.Text.Tostring)

أنت تحاول أن تجمع متغير نصي مع متغير رقمي. يجب تحويل المتغير الرقمي إلى نص أولاً. و يكون أفضل أيضاً لو أنك تستغني عن طريق إنتاج جمل الـSQL عن طريق تربيط النصوص مع القيم هذه و استخدام البرامترز parameters لإدخال القيم لأن هذا أفضل على المدى الطويل أمنياً و برمجياً.

كلام الأخ سيستم مظبوط تماما

تكوين جمل السيكوال بهذه الطريقة سيجعل اختراق الموقع سهل جدا باستخدام الـ SQL Injection

ولهذا يجب استخدام الـ Parameters لتفادي هذه المشكلة

بالتوفيق

إذا أردت أن تـجـعـلـنـي سـعـيـداً ... فـعـلـمـنـي شـيـئـاً جـديـداً

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