نمایش نتایج 1 تا 19 از 19

نام تاپیک: مشکل در دسترسی به Id آیتم انتخابی در کمبوباکس (ComboBox)

  1. #1
    کاربر جدید
    تاریخ عضویت
    آذر 1389
    محل زندگی
    لاهیجان - کرج
    پست
    13

    Question مشکل در دسترسی به Id آیتم انتخابی در کمبوباکس (ComboBox)

    سلام.
    من چند تا مشکل تو سی شارپ دارم.
    1:
    فرض کنید یه جدول تو دیتابیس دارم واسه رشته که دوتا فیلد "نام" از جنس nvarchar و یه کلید اصلی اتونامبر" آیدی" از جنس smallint داره.
    یه جدول هم واسه استاد دارم که یه فیلد "نام استاد" داره از جنس nvarchar، یه فیلد "کد رشته" smallint.وقتی می خوام یه استاد جدید رو تو برنامه ثبت کنم،اول از کمبو باکس رشته رو انتخاب می کنم، می خوام "آیدی" مربوط به اون رشته و نامی که برای استاد وارد کردم توی جدول استاد ذخیره شه.اما بعضی وقت ها اشتباهی "آیدی" یه رشته ی دیگه رو ذخیره می کنه.نمیدونم چرا ؟؟؟
    این کد ثبت استاد :
    private void button2_Click(object sender, EventArgs e)
    {
    if (textBox2.Text != "")
    {
    SqlConnection con2 = new SqlConnection();
    con2.ConnectionString = "data source=localhost;initial catalog=tamrin;integrated security=sspi;persist security info=true";
    con2.Open();

    SqlCommand com2 = new SqlCommand();
    com2.CommandText = "insert into t_ostad (KodeReshte,name) values ('" + comboBox1.SelectedValue + "',N'" + textBox2.Text + "')";
    com2.Connection = con2;
    com2.ExecuteNonQuery();


    con2.Close();

    MessageBox.Show("ثبت استاد با موفقیت انجام شد");
    comboBox1.Text = "Select";
    textBox2.Text = "";
    }
    else
    MessageBox.Show("نام استاد را وارد نمایید");
    }


    2:
    می خوام دو تا کمبو باکس داشته باشم که یکیش کل رشته هارو نشون بده، بعد من هر رشته ای رو انتخاب کردم، کمبوباکس دوم فقط اسم استاد هایی که مربوط به اون رشته است نشون بده.کد این قسمت رو توی رویداد تغییر اندیس کمبوباکس اول نوشتم،اما نمیدونم چه جوری باید بنویسم که خطا نده.
    وقتی میگم همه ی استاد هارو نشون بده مشکلی نداره ،اما where که میزارم این خطا رو میده :
    Syntax error converting the nvarchar value 'System.Data.DataRowView' to a column of data type smallint

    این هم کد دوتا کمبو باکس:
     SqlConnection con4 = new SqlConnection();
    con4.ConnectionString = "data source=localhost;initial catalog=tamrin;integrated security=sspi;persist security info=true";
    con4.Open();
    SqlDataAdapter sda4 = new SqlDataAdapter("select * from t_ostad where (KodeReshte=N'" + comboBox4.SelectedValue + "')", con4);
    DataSet ds4 = new DataSet();
    ds4.Tables.Add("t_ostad");
    sda4.Fill(ds4, "t_ostad");
    comboBox5.DataSource = ds4.Tables["t_ostad"];
    comboBox5.DisplayMember = ds4.Tables["t_ostad"].Columns["name"].ToString();
    con4.Close();



  2. #2
    کاربر تازه وارد
    تاریخ عضویت
    مهر 1386
    محل زندگی
    سمنان
    پست
    54

    نقل قول: مشکل در استفاده از کمبوباکس در محیط سی شارپ !!!

    با سلام دوست عزیز
    بهترین کار ممکن برای رفع مشکلاتت استفاده از break point هست . این جوری دقیقا می تونی بفهمی که چه رشته ای رو موقع اجرا دادی به sql تا برات اجرا کنه . مثلا :
    string s="select * from t_ostad where (KodeReshte=N'" + comboBox4.SelectedValue + "')";

    رو بگذار و بعد جلوی خط break point قرار بده و مقدار رو دقیق ببین . (برای گذاشتن break point باید کنار خط که کد رو نوشتی سمت چپ کلیک کنی و دایره قرمز رنگی ایجاد میشه و هر موقع که کامپایلر در حال اجرای اون باشه متوقف میشه و میتونی مقدار رو ببینی )
    برای سوال اول فکر کنم باید این رو هم چک کنی که combo حتما یه مقداری داشته باشه :
    if(comboBox1.SelectedIndex!=-1)

  3. #3
    کاربر جدید
    تاریخ عضویت
    آذر 1389
    محل زندگی
    لاهیجان - کرج
    پست
    13

    Question نقل قول: مشکل در استفاده از کمبوباکس در محیط سی شارپ !!!

    نقل قول نوشته شده توسط mehrdad1261 مشاهده تاپیک
    با سلام دوست عزیز
    بهترین کار ممکن برای رفع مشکلاتت استفاده از break point هست . این جوری دقیقا می تونی بفهمی که چه رشته ای رو موقع اجرا دادی به sql تا برات اجرا کنه . مثلا :
    string s="select * from t_ostad where (KodeReshte=N'" + comboBox4.SelectedValue + "')";

    رو بگذار و بعد جلوی خط break point قرار بده و مقدار رو دقیق ببین . (برای گذاشتن break point باید کنار خط که کد رو نوشتی سمت چپ کلیک کنی و دایره قرمز رنگی ایجاد میشه و هر موقع که کامپایلر در حال اجرای اون باشه متوقف میشه و میتونی مقدار رو ببینی )
    برای سوال اول فکر کنم باید این رو هم چک کنی که combo حتما یه مقداری داشته باشه :
    if(comboBox1.SelectedIndex!=-1)
    ================================================== ====
    سلام
    از وقتی که واسه جواب دادن گذاشتی ممنون.
    در مورد سوال اولم که گفتم آیدی بعضی از رشته ها ، تو جدول استاد اشتباهی ثبت میشه فکر نکنم مشکل از اندیس باشه، چون من خودم برنامه رو تست میکردم هر دفعه یکی از آیتم های کمبوباکس رو انتخاب کرده بودم و مقدار خالی ارسال نمیشد به دیتابیس.
    سوالی که الآن واسم پیش اومد اینه :کمبوباکس من از روی دیتابیسم پر میشه، و قبل از اینکه من چیزی رو انتخاب کنم اندیس صفرش همیشه انتخاب شده هست؛این کد چک کردن کمبوباکس، واسه اینجور وقت ها هم درست جواب میده ؟ شاید یه نفر یادش رفت مقدار اون کمبوباکس رو انتخاب کنه،راهی هست زورکی یه مقدار واسش ثبت نشه؟

    در مورد breakpoint هم مقداری که میریزه تو متغیر اینه:
       "select * from t_ostad where (KodeReshte=N'System.Data.DataRowView')" 

    که من نمیدونم datarowview چیه ولی با توجه با اینکه من تو فرم لود گفتم ValueMember این کمبوباکس "آیدی" ش باشه، انتظار داشتم دو تا عدد رو با هم مقایسه کنه،سطرهایی که مقدار عددها برابره "name" رو برگردونه.

  4. #4

    نقل قول: مشکل در استفاده از کمبوباکس در محیط سی شارپ !!!

    من این کد رو دارم:

    DataTable dt = new DataTable();
    SqlDataAdapter ada = new SqlDataAdapter("select * from city",con );
    ada.Fill(dt);
    citycombo.DataSource = dt;
    citycombo.DisplayMember = "cityname";
    cityofuni.DataSource = dt;
    cityofuni.DisplayMember = "cityname";

    DataTable dt1 = new DataTable();
    SqlDataAdapter ada1 = new SqlDataAdapter("select * from university",con);
    ada1.Fill(dt1);
    unicombo.DataSource = dt1;
    unicombo.DisplayMember = "uniname";
    unicombo1.DataSource = dt1;
    unicombo1.DisplayMember = "uniname";


    این دوتا کد مثل هم دیگه هست که قراره دو تا کومبوباکس رو پر کنه. اما فقط یکیش پر میشه!! چرا؟

  5. #5
    کاربر دائمی آواتار SharpSabre
    تاریخ عضویت
    دی 1388
    محل زندگی
    خونمون
    سن
    40
    پست
    136

    نقل قول: مشکل در استفاده از کمبوباکس در محیط سی شارپ !!!

    تو Sql از ComboBox1.Text استفاده کن .
    com2.CommandText = "insert into t_ostad (KodeReshte,name) values ('" +  comboBox1.Text + "

  6. #6

    نقل قول: مشکل در استفاده از کمبوباکس در محیط سی شارپ !!!

    نقل قول نوشته شده توسط mhdhp86 مشاهده تاپیک


    این دوتا کد مثل هم دیگه هست که قراره دو تا کومبوباکس رو پر کنه. اما فقط یکیش پر میشه!! چرا؟
    الان کشف کردم که تا الان اصلا هیچ وقت جدول مربوطه توش اطلاعاتی ثبت نمیشده که بخواد بیاد توی کومبوباکس! وقتی بررسی کردم متوجه شدم فیلد کلیدی که برای جدولش انتخاب کردم Is Identity اش No هست. چه طوری می تونم به Yes تغییرش بدم؟
    (ببخشید میدونم سئوالم مربوط به بخش SQL هست.اما اونجا چند سال طول میکشه تا یکی به سئوالم جواب بده!)

  7. #7
    کاربر دائمی آواتار roolinjax
    تاریخ عضویت
    تیر 1390
    محل زندگی
    جایی که آرامش باشد.
    سن
    35
    پست
    312

    نقل قول: مشکل در استفاده از کمبوباکس در محیط سی شارپ !!!

    نقل قول نوشته شده توسط mhdhp86 مشاهده تاپیک
    الان کشف کردم که تا الان اصلا هیچ وقت جدول مربوطه توش اطلاعاتی ثبت نمیشده که بخواد بیاد توی کومبوباکس! وقتی بررسی کردم متوجه شدم فیلد کلیدی که برای جدولش انتخاب کردم Is Identity اش No هست. چه طوری می تونم به Yes تغییرش بدم؟
    (ببخشید میدونم سئوالم مربوط به بخش SQL هست.اما اونجا چند سال طول میکشه تا یکی به سئوالم جواب بده!)
    با سلام
    روی علامت + کنار IsIdentity کلیک کن تا باز بشه ، بعد مقدار داخل اون رو با انتخاب از کمبوباکس مربوطه به Yes تغییر بده.
    ضمنا من متوجه نشدم آیا مشکل اصلی شما که به خاطرش تاپیک زدین حل شده یا نه ؟

  8. #8

    نقل قول: مشکل در استفاده از کمبوباکس در محیط سی شارپ !!!

    نقل قول نوشته شده توسط roolinjax مشاهده تاپیک
    با سلام
    روی علامت + کنار IsIdentity کلیک کن تا باز بشه ، بعد مقدار داخل اون رو با انتخاب از کمبوباکس مربوطه به Yes تغییر بده.
    ضمنا من متوجه نشدم آیا مشکل اصلی شما که به خاطرش تاپیک زدین حل شده یا نه ؟
    سلام
    خیلی ممنون. تاپیک رو من شروع نکردم!
    مشکل من برای تغییر اینه که اصلا کومبو باکسی وجود نداره!خاموشه... شاید من اشتباها جای دیگه میرم. کجا باید این کار رو انجام بدم؟
    12.jpg

  9. #9
    کاربر دائمی آواتار roolinjax
    تاریخ عضویت
    تیر 1390
    محل زندگی
    جایی که آرامش باشد.
    سن
    35
    پست
    312

    نقل قول: مشکل در استفاده از کمبوباکس در محیط سی شارپ !!!

    مسلما نوع داده ای که انتخاب کردی بهت این اجازه رو نمیده
    بهتره از نوع Decimal استفاده کنی

  10. #10

    نقل قول: مشکل در استفاده از کمبوباکس در محیط سی شارپ !!!

    نقل قول نوشته شده توسط roolinjax مشاهده تاپیک
    مسلما نوع داده ای که انتخاب کردی بهت این اجازه رو نمیده
    بهتره از نوع Decimal استفاده کنی
    اگر این جواب سئوال منه باید بگم نوع داده ام int هست. توی یک جدول دیگه int هست و مشکلی نداره

  11. #11
    کاربر دائمی آواتار roolinjax
    تاریخ عضویت
    تیر 1390
    محل زندگی
    جایی که آرامش باشد.
    سن
    35
    پست
    312

    نقل قول: مشکل در استفاده از کمبوباکس در محیط سی شارپ !!!

    نقل قول نوشته شده توسط mhdhp86 مشاهده تاپیک
    اگر این جواب سئوال منه باید بگم نوع داده ام int هست. توی یک جدول دیگه int هست و مشکلی نداره
    من همیشه از نوعی که گفتم استفاده می کنم . در هر حال هر نوع عددی باید جواب بده . مطمئنی فیلد مورد نظر رو انتخاب کردی و بعد میای توی خصوصیاتش ؟

  12. #12
    کاربر جدید
    تاریخ عضویت
    آذر 1389
    محل زندگی
    لاهیجان - کرج
    پست
    13

    نقل قول: مشکل در استفاده از کمبوباکس در محیط سی شارپ !!!

    نقل قول نوشته شده توسط SharpSabre مشاهده تاپیک
    تو Sql از ComboBox1.Text استفاده کن .
    com2.CommandText = "insert into t_ostad (KodeReshte,name) values ('" +  comboBox1.Text + "
    ================================================== ====
    سلام
    با این دستور اسم رشته درست ثبت میشه، اما من اسمش رو نمی خوام تو دیتابیس ذخیره کنم ، آیدی متناظر با اون رشته رو می خوام

  13. #13
    کاربر جدید
    تاریخ عضویت
    آذر 1389
    محل زندگی
    لاهیجان - کرج
    پست
    13

    نقل قول: مشکل در استفاده از کمبوباکس در محیط سی شارپ !!!

    نقل قول نوشته شده توسط mhdhp86 مشاهده تاپیک
    سلام
    خیلی ممنون. تاپیک رو من شروع نکردم!
    مشکل من برای تغییر اینه که اصلا کومبو باکسی وجود نداره!خاموشه... شاید من اشتباها جای دیگه میرم. کجا باید این کار رو انجام بدم؟
    12.jpg
    ================================================== ===========
    سلام
    واسه اینکه کلید اصلی دیتابیست اتو نامبر خودش عدد بگیره باید وارد محیط SQL Manager بشی .از پوشه ی دیتابیس ها دیتا بیس خودت رو پیدا کنی.بعد table ها رو پیدا کنی.از کادر سمت راست که اسم جدول ها رو لیست کرده روی جدولی که کلیدش قراره اتونامبر بشه کلیک راست کنی و Design رو انتخاب کنی.
    فیلدهای جدول و نوع داده ای که براشون انتخاب کردی رو اینجا میتونی ببینی.روی فیلد کلید اصلیت کلیک کن، اگه جنس داده اش عددی باشه میتونی Identity رو براش yes کنی و بگی چندتا چندتا پیش بره

  14. #14

    نقل قول: مشکل در استفاده از کمبوباکس در محیط سی شارپ !!!

    نقل قول نوشته شده توسط bili.koote مشاهده تاپیک
    ================================================== ===========
    سلام
    واسه اینکه کلید اصلی دیتابیست اتو نامبر خودش عدد بگیره باید وارد محیط SQL Manager بشی .:
    دیتا بیسم به برنامه اتچ شده. با sql manager تغیر بدم تو برنامم اعمال میشه؟!!!

  15. #15

    نقل قول: مشکل در استفاده از کمبوباکس در محیط سی شارپ !!!

    نقل قول نوشته شده توسط mhdhp86 مشاهده تاپیک
    دیتا بیسم به برنامه اتچ شده. با sql manager تغیر بدم تو برنامم اعمال میشه؟!!!
    اره مهم نيست با چي باشه.فقط بايد دسترسي داشته باشه واسه تغييرات

  16. #16

    نقل قول: مشکل در استفاده از کمبوباکس در محیط سی شارپ !!!

    این combobox ها هر طرفش رو درست می کنم یه چیز دیگش خراب میشه!!

    DataTable dt = new DataTable();
    SqlDataAdapter ada = new SqlDataAdapter("select * from city",con );
    ada.Fill(dt);
    citycombo.DataSource = dt;
    citycombo.DisplayMember = "cityname";
    cityofuni.DataSource = dt;
    cityofuni.DisplayMember = "cityname";


    این دو تا کومبو باکس توی یک فرم هستند. با این کدها پرشون کردم. اما موقع اجرا وقتی یکیش رو یک گزینش رو انتخاب می کنم اون یکی هم همون انتخاب میشه!!!
    یعنی مثلا اگر تو یکیش دومین گزینه رو انتخاب کنم خود به خود اون یکی هم دومین گزینش انتخاب میشه!!
    چرا؟

  17. #17

    نقل قول: مشکل در استفاده از کمبوباکس در محیط سی شارپ !!!

    نمی دونم من کلمات بدی برای جستجو انتخاب می کنم یا واقعا راجع به این موضوع تو اینترنت کسی چیزی نگفته. کسی نمی دونه این مشکل من از کجاست؟(پست بالایی)

  18. #18
    کاربر جدید
    تاریخ عضویت
    آذر 1389
    محل زندگی
    لاهیجان - کرج
    پست
    13

    نقل قول: مشکل در استفاده از کمبوباکس در محیط سی شارپ !!!

    نقل قول نوشته شده توسط mhdhp86 مشاهده تاپیک
    این combobox ها هر طرفش رو درست می کنم یه چیز دیگش خراب میشه!!


    این دو تا کومبو باکس توی یک فرم هستند. اما موقع اجرا وقتی یکیش رو یک گزینش رو انتخاب می کنم اون یکی هم همون انتخاب میشه!!!
    یعنی مثلا اگر تو یکیش دومین گزینه رو انتخاب کنم خود به خود اون یکی هم دومین گزینش انتخاب میشه!!
    چرا؟
    ================================================== =========
    به جای اینکه برای پرکردن کمبو باکس ها از یه SqlDataAdapter استفاده کنی ،دو تا SqlDataAdapter تعریف کن که اسمشون یکی نباشه .(من واسه هر کدوم به جز دیتاآداپتر،یه دیتا ست جدا هم تعریف کردم )

  19. #19

    نقل قول: مشکل در استفاده از کمبوباکس در محیط سی شارپ !!!

    نقل قول نوشته شده توسط bili.koote مشاهده تاپیک
    ================================================== =========
    به جای اینکه برای پرکردن کمبو باکس ها از یه SqlDataAdapter استفاده کنی ،دو تا SqlDataAdapter تعریف کن که اسمشون یکی نباشه .(من واسه هر کدوم به جز دیتاآداپتر،یه دیتا ست جدا هم تعریف کردم )
    سلام
    ممنون از راهنماییت. اومده بودم بگم راه حل رو فهمیدم که دیدم شما جواب مشابه دادید.
    من datatable ها رو جدا کردم درست شد. البته به طور منطقی هر چی فکر میکنم نباید به هم ربطی داشته باشند! چون اون در page load پر میشه اما این اتفاق بعد از تغییر در کومبو باکس رخ میده! به هر حال این طوری حل شد

تاپیک های مشابه

  1. حل مشکل سرعت دسترسی به دوربین اندروید در فایر مانکی
    نوشته شده توسط DAMAVAND در بخش برنامه نویسی موبایل در Delphi
    پاسخ: 0
    آخرین پست: سه شنبه 19 اردیبهشت 1396, 18:42 عصر
  2. سوال: مشکل در اتصال ComboBox به بانک اطلاعاتی؟
    نوشته شده توسط پیام حیاتی در بخش C#‎‎
    پاسخ: 4
    آخرین پست: پنج شنبه 07 اسفند 1393, 17:13 عصر
  3. سوال: مشکل عدم دسترسی به کنترل login موجود در login view
    نوشته شده توسط orca13 در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: دوشنبه 30 مرداد 1391, 16:17 عصر
  4. سوال: دسترسی به ID المنت در داخل پلاگین.
    نوشته شده توسط aminghaderi در بخش jQuery
    پاسخ: 1
    آخرین پست: چهارشنبه 28 تیر 1391, 21:43 عصر
  5. مشکل در ساخت combobox
    نوشته شده توسط savalanboy در بخش برنامه نویسی در 6 VB
    پاسخ: 0
    آخرین پست: چهارشنبه 03 خرداد 1385, 19:03 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •