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

نام تاپیک: مشکل در پر نشدن TextBox های ساخته شده در DataGridView

  1. #1

    مشکل در پر نشدن TextBox های ساخته شده در DataGridView

    سلام دوستان
    در فرم زیر بعد از زدن دکمه ادامه باید نمراتی که قبلا برای کارنامه درسی داوطلب ثبت شده در گرید لود بشن.
    Capture.JPG
    واسه این کار کد زیر رو نوشتم. (در بانکم یه فیلد به نام نمره دارم ولی در گرید میخوام قسمت صحیح و اعشار نمره رو تو دو ستون مجزا نمایش بدم)
                SqlConnection conn = new SqlConnection(FrmMain.strcon);
    SqlCommand cmdd = new SqlCommand();
    cmdd.Connection = conn;
    cmdd.CommandText = "select Tbl_Karname_Darsi.ID_Dars,Name_Dars,Nomre from Tbl_Karname_Darsi inner join Tbl_Dars on Tbl_Karname_Darsi.ID_Dars=Tbl_Dars.ID_Dars where ID_STD=" + int.Parse(txtIDSTD.Text) + " and Azmoon_Year=" + Properties.Settings.Default.Azmoon_Year + " and ID_Azmoon=" + int.Parse(comboBox1.SelectedValue.ToString());

    conn.Open();
    cmdd.ExecuteNonQuery();
    conn.Close();

    SqlDataAdapter daa = new SqlDataAdapter(cmdd);
    DataTable dtt = new DataTable();
    dtt.Clear();
    daa.Fill(dtt);
    dataGridView1.DataSource = dtt;


    dataGridView1.Columns["Nomre"].Visible = false;

    DataGridViewTextBoxColumn grdtxt1 = new DataGridViewTextBoxColumn();
    grdtxt1.Name = "Nomre_Ashar";
    dataGridView1.Columns.Add(grdtxt1);
    grdtxt1.HeaderText = "اعشار";

    DataGridViewTextBoxColumn grdtxt2 = new DataGridViewTextBoxColumn();
    grdtxt2.Name = "Nomre_Sahih";
    dataGridView1.Columns.Add(grdtxt2);
    grdtxt2.HeaderText = "صحیح";

    int count = dtt.Rows.Count;
    string str_Nomre_Sahih="", str_Nomre_Ashar = "";
    for (int i = 0; i < count; i++)
    {
    string s = dtt.Rows[i]["Nomre"].ToString();
    int x = s.IndexOf(".", 0, s.Length - 1);
    str_Nomre_Sahih = s.Substring(0,x);
    str_Nomre_Ashar = s.Substring(x+1,s.Length-x-1);

    dataGridView1.Rows[i].Cells["Nomre_Sahih"].Value = str_Nomre_Sahih;
    dataGridView1.Rows[i].Cells["Nomre_Ashar"].Value = str_Nomre_Ashar;
    }

    حالا مشکل اینه که بار اول که دکمه ادامه رو میزنم گریدم پر میشه ولی دو ستون نمره اعشار و نمره صحیح خالی میمونه. جالبش اینه که یه بار که دکمه انصراف رو میزنم و دوباره دکمه ادامه رو میزنم اون دوتا ستون هم پر میشن. چرااااا اینجوری؟؟؟ کلی باهاش ور رفتم ولی هیچ
    آخرین ویرایش به وسیله Nima_kyan : چهارشنبه 29 شهریور 1391 در 02:05 صبح

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

    نقل قول: مشکل در پر نشدن TextBox های ساخته شده در DataGridView

    جوابش تو زمان Adapter.Fill کردن هست.

  3. #3

    نقل قول: مشکل در پر نشدن TextBox های ساخته شده در DataGridView

    نقل قول نوشته شده توسط SharpSabre مشاهده تاپیک
    جوابش تو زمان Adapter.Fill کردن هست.
    ممنون بابت توجه کردنت.
    ولی فک نمیکنم مشکل اون باشه. همون طور که در عکس مشخصه دو ستون اول گرید مقداردهی شده پس DataTable ام پر میشه.

  4. #4

    نقل قول: مشکل در پر نشدن TextBox های ساخته شده در DataGridView

    دیتاتیبل را در سطح کلاس تعریف کنید تا از همین یک نمونه دیتاتیبل استفاده کنید چون بعدا میخواهید محتوای دیتاتیبلی که از قبل وجود داشته را clear کنید.
    جدا کردن قسمت صحیح و اعشار را در کد sql انجام بدید. به کامند (cmd) توجه کنید:
            DataTable dt = new DataTable();
    private void button12_Click(object sender, EventArgs e)
    {
    using (SqlConnection conn = new SqlConnection(FrmMain.strcon))
    {
    using (SqlCommand cmd = new SqlCommand())
    {
    cmd.Connection = conn;
    cmd.CommandText = "select Tbl_Karname_Darsi.ID_Dars,Name_Dars,Nomre ,Nomre ,FLOOR(Nomre)as Nomre_sahih ,CAST((Nomre - FLOOR(Nomre))*100 as int)as Nomre_ashar from Tbl_Karname_Darsi inner join Tbl_Dars on Tbl_Karname_Darsi.ID_Dars=Tbl_Dars.ID_Dars where ID_STD=" + txtIDSTD.Text + " and Azmoon_Year=" + Properties.Settings.Default.Azmoon_Year + " and ID_Azmoon=" + comboBox1.SelectedValue;

    using (SqlDataAdapter da = new SqlDataAdapter(cmd))
    {
    dt.Clear();
    da.Fill(dt);
    dataGridView1.DataSource = dt;
    }
    }
    }
    }


    nomre_sahih و nomre_ashar دو ستون از نوع int هستند و در برنامه تون برای استفاده دیگه نیاز به تبدیل به int نیست. البته میتونید نوع این ستونها را در قسمت cast تغییر بدید.

    txtIDSTD.Text و ... هم نیاز به تبدیل شدن به عدد ندارند چون آخر سر به رشته کامند الحاق میشن.

    دستور select را برای جلوگیری از sql injection و بالا بردن سرعت به صورت یک پروسیجر با پارامترهای مناسب در دیتابیس تعریف کنید و در کدتون اون storedprocedure را فراخوانی کنید.
    آخرین ویرایش به وسیله Mahmoud.Afrad : چهارشنبه 29 شهریور 1391 در 02:36 صبح

  5. #5
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: مشکل در پر نشدن TextBox های ساخته شده در DataGridView

    بعد از fill دو تا ستون به دیتاتیبل اضافه کن واطلاعات رو بریز توی اونها.خیلی بهتره
    از نظر طراحی, سرعت, حافظه

  6. #6

    نقل قول: مشکل در پر نشدن TextBox های ساخته شده در DataGridView

    ممنون mafaman2003 و FastCode
    با کد mafaman2003 مشکل حل شد. ولی درست متوجه نشدم که مشکل کدم کجا بود که..
    حالا مشکل اینه که بار اول که دکمه ادامه رو میزنم گریدم پر میشه ولی دو ستون نمره اعشار و نمره صحیح خالی میمونه. جالبش اینه که یه بار که دکمه انصراف رو میزنم و دوباره دکمه ادامه رو میزنم اون دوتا ستون هم پر میشن

  7. #7

    نقل قول: مشکل در پر نشدن TextBox های ساخته شده در DataGridView

    یه مشکل دیگه..
    من واسه دو ستون نمره صحیح و نمره اعشار Textbox گذاشته بودم که بتونم ویرایششون کنم و همچنین بتونم محدودش کنم که فقط عدد وارد کنه
    با کد جدید mafaman2003 این امکان وجود داره؟؟؟

  8. #8

    نقل قول: مشکل در پر نشدن TextBox های ساخته شده در DataGridView

    نقل قول نوشته شده توسط FastCode مشاهده تاپیک
    بعد از fill دو تا ستون به دیتاتیبل اضافه کن واطلاعات رو بریز توی اونها.خیلی بهتره
    از نظر طراحی, سرعت, حافظه
    خوب من هم در همون کد اولم این کار رو کردم. بعد از fill دوستون از نوع Textbox اضافه کردم و اطلاعات رو ریختم توشون.(اگه منظورتون رو درست متوجه شده باشم)

  9. #9
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: مشکل در پر نشدن TextBox های ساخته شده در DataGridView

    نقل قول نوشته شده توسط Nima_kyan مشاهده تاپیک
    (اگه منظورتون رو درست متوجه شده باشم)
    دو ستون به DataTable نوشتم

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

  1. پاسخ: 7
    آخرین پست: چهارشنبه 02 اسفند 1396, 17:33 عصر
  2. مشکل اعمال نشدن style به page های ساخته شده از مسترپیج
    نوشته شده توسط atashsavar در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: شنبه 31 اردیبهشت 1390, 23:48 عصر
  3. مشکل تم های ساخته شده برای دکمه ها
    نوشته شده توسط behrouz_n در بخش WPF
    پاسخ: 8
    آخرین پست: دوشنبه 29 آذر 1389, 00:31 صبح
  4. مشکل در به کارگیری Native های ساخته شده توسط Ngen
    نوشته شده توسط saberamani در بخش برنامه نویسی مبتنی بر Microsoft .Net Framework
    پاسخ: 2
    آخرین پست: سه شنبه 27 مرداد 1388, 16:57 عصر
  5. مشکل در به کارگیری Native های ساخته شده توسط Ngen
    نوشته شده توسط saberamani در بخش C#‎‎
    پاسخ: 5
    آخرین پست: پنج شنبه 14 دی 1385, 18:18 عصر

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

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