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

اذا كان الكومبو يحتوى ارقام لا توجد مشاكل - لكن اسماء هناك هذا الخطأ ؟

بدأه red_scorpion1 في 22 يونيو 2012 · 3 رد · 651 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

وفقنى الله تعالى وبدأت فى تعلم لغة C#. Net وقمت بعمل نموذج الغرض منه إلغاء بيانات موظف وقمت بعمل كود لملىء الكومبوبوكس وكود أخر لإظهار البيانات فى باقى النموذج

اذا كان الكومبو معباأ بأرقام فإنه يعمل بشكل سليم - ولكن إن كان به أسماء ( وهذا هو المطلوب ) يعطى رسالة خطأ بأن العمود خطأ

1340238160841.jpg

وان كان الإسم به أكثر من اسم مثلا ( احمد مصطفى ) فإنه لا يعطى تلك الرسالة ولكن يعطى رسالة أخرى وهى

Incorrect syntax near 'مصطفى'

و لا أعلم ما الخطأ فهل من توضيح

الكود هو

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace sayadla_pro
{
    public partial class Emplo_Del : Form
    {
        public Emplo_Del()
        {
            InitializeComponent();
        }

        private void Emplo_Edite_Load(object sender, EventArgs e)
        {
            using (SqlConnection cn = new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Emplo;Data Source=Server"))
            {
                cn.Open();
                using (SqlCommand cm = new SqlCommand("select *from Emplo_Data",cn))
                {
                    using (SqlDataReader dr = cm.ExecuteReader())
                    {
                        while (dr.Read() == true)
                        {
                            nm_combo.Items.Add(dr[1]);
                        }
                    }
                }
                cn.Close();
            }
        }


        private void nm_combo_SelectedIndexChanged(object sender, EventArgs e)
        {
            using (SqlConnection cn = new SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Emplo;Data Source=Server"))
            {
                cn.Open();
                using (SqlCommand cm = new SqlCommand("select * from Emplo_Data where Emplo_nm = " + nm_combo.Text + "", cn))
                {
                    using (SqlDataReader dr = cm.ExecuteReader((CommandBehavior.SingleRow)))
                    {
                        dr.Read();
                        dep_txt.Text = dr["Department"].ToString();
                        job_txt.Text = dr["Job_title"].ToString();
                        branch_txt.Text = dr["Branch_nm"].ToString();
                        class_txt.Text = dr["Class_id"].ToString();
                        sa1_txt.Text = dr["sa1"].ToString();
                        sa2_txt.Text = dr["sa2"].ToString();
                        sa3_txt.Text = dr["sa3"].ToString();
                    }
                }
                cn.Close();
            } 
        }
    }
}

عندما اغير رقم العمود بهذا الكود

nm_combo.Items.Add(dr[1].ToString());

اذا خليته [0] وهو رقم اول عمود فى الجدول وهو خاص بكود الموظف يعمل البرنامج معى دون اى مشاكل - لكن عندما اختار العامود الثانى [1] وهو الخاص بالأسماء تظهر المشكلة

#2

السلام عليكم

بخصوص رسالة الخطأ

Invalid column name 'احمد'

المشكلة هنا سببها جملة select هي لو هتستخدم نوع بيانات من نوع string لازم يكون بين علامتي ' وياريت تستخدم N وهو أختصار كلمة nvarchar علشان اللغة العربية يعني الجملة عندك هتبقي كدا

 select * from Emplo_Data where Emplo_nm = N'" + nm_combo.Text + "'

في حالة بقي الأرقام يبقي زي الكود القديم

انا مجربتش الكود عندي أتمني يكون حل المشكلة

1
#3
Principle كتب:

السلام عليكم

بخصوص رسالة الخطأ

Invalid column name 'احمد'

المشكلة هنا سببها جملة select هي لو هتستخدم نوع بيانات من نوع string لازم يكون بين علامتي ' وياريت تستخدم N وهو أختصار كلمة nvarchar علشان اللغة العربية يعني الجملة عندك هتبقي كدا

 select * from Emplo_Data where Emplo_nm = N'" + nm_combo.Text + "'

في حالة بقي الأرقام يبقي زي الكود القديم

انا مجربتش الكود عندي أتمني يكون حل المشكلة

بارك الله فيك بالفعل الكود يعمل وتم حل المشكلة

وان امكن توضيحات عن جمل الاستعلام الخاصة بالنصوص كى يتسنى لى فهم الموضوع كاملا وتجنب المشاكل خاصة موضوع الاختصارت امثال N لأنى بصراحة اول مرة اعرفة

تم تعديل هذه المشاركة بواسطة red_scorpion1 في 22 يونيو 2012 في 14:27

#4

حرف ال N للتعامل مع الحروف الغير انجليزية في التخزين والاستعلام

1

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…