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

نام تاپیک: اضافه کردن ردیف به datagridview

  1. #1

    اضافه کردن ردیف به datagridview

    سلام.یه چیزی خیلی کلافه ام کرده.یک دیتا گرید ویو دارم که میخام طی یک فرآیند بازگشتی هر بار بهش ردیف های جدید اضافه بشه.من برای اتصال این دیتا گرید ویو از linq استفاده کردم و تنها دستوری که برای این کار بلدم datagrid.datasource است.منتها این دستور محتوای قبلی دیتا گرید رو پاک می کنه ولی من میخام محتوای جدید به انتهای همین گرید ویو اضافه بشه و محتوای قبلی پاک نشه.چطور میشه این کار رو کرد آیا احتیاج به تابع خاصی داره یا در امکانات خود دیتا گرید ویو یا لینک هست؟
    برای بهتر فهمیدن کد رو هم میزارم:
     protected void treetogrid(TreeNode trn, DataGridView dgv)
    {
    linqDataContext db = new linqDataContext();
    dgv.DataSource = db.kgselect(int.Parse(trn.Name));
    foreach (TreeNode tn in trn.Nodes)
    {
    treetogrid(tn, dgv);
    }

    }

  2. #2

    نقل قول: اضافه کردن ردیف به دیتا گرید ویو

    سلام
    باید AllowUserToAddRows را در دیتاگرید ویو مساوی True قرار بدی.
    this.dataGridView1.AllowUserToAddRows = true

  3. #3

    نقل قول: اضافه کردن ردیف به دیتا گرید ویو

    نقل قول نوشته شده توسط asghar2008 مشاهده تاپیک
    سلام
    باید AllowUserToAddRows را در دیتاگرید ویو مساوی True قرار بدی.
    this.dataGridView1.AllowUserToAddRows = true
    این رو true کنم بعد از دستور datasource استفاده کنم حل میشه؟

  4. #4

    نقل قول: اضافه کردن ردیف به دیتا گرید ویو

    فک کنم سوالم رو خوب متوجه نشدید.چون اصلا مشکلم اینه که نمیدونم چطور محتوای قبلی دیتا گرید ویو رو نگه دارم و محتوای جدید رو هم بهش اضافه کنم.

  5. #5

    نقل قول: اضافه کردن ردیف به دیتا گرید ویو

    دوست عزیز رکورد های شما در بانک ذخیره میشه؟

    یا فقط تو خود گرید ویو؟

    ایجاد سطر جدید در گرید ویو (این برای اضافه کردن در گریدویو هست نه به بانک)

    با استفاده از این کد
    Dgrid.Rows.Add("", "", "");



    جای "" مقادیرتو بزار .
    اضافه کردن به بانک و نمایش در گریدویو

    اگه dt (دیتاتیبل) به دیتاسورس DGV وصل هست شما باید رکورد جدید رو به dt اضافه کنید.چون اونموقع اطلاعات قبلی پاک نمیشه.
    مثلا اگر ديتا سورس گريدتون ديتا تيبلي با نام dt هست بايد به dt اضافه كنيد:

    dt.Rows.Add(2, 8, "asghar2008", true);


    اطلاعات بیشتر در این تاپیک ، کلیک کن.
    آخرین ویرایش به وسیله asghar2008 : سه شنبه 19 دی 1391 در 12:58 عصر

  6. #6

    نقل قول: اضافه کردن ردیف به دیتا گرید ویو

    رکورد ها توسط دستور این دستور
    db.kgselect(int.Parse(trn.Name));

    فراخوانی می شود.این دستور فقط دو ستون از جدول اصلی دیتا بیس رو بازیابی می کنه.این دو ستون در دیتا گرید ویو نمایش داده میشه و فقط بازیابی میشه اما در جایی از دیتا بیس ذخیره نمیشه.دیتا گرید ویو فقط به دستور گفته شده اتصال داره.

  7. #7

    نقل قول: اضافه کردن ردیف به دیتا گرید ویو

    نه نمیخام به جدول دیتا بیس اضافه بشه.افزودن به دیتا بیس رو بلدم.اطلاعات گرید ویو از یک جدول دیتا بیس نمیاد بلکه از یک دستور بازیابی میاد.دستور بازیابی توی یک چرخه دایم تکرار میشه و میخام هربار نتایجش در دیتا گرید ویو اضافه بشه.

  8. #8
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: اضافه کردن ردیف به دیتا گرید ویو

    به نظرم شما بیاین یه DataTable بسازید و اونو بدین به DataSource گردیدتون.
    بعد رد هر بار که اون تابع اجرا میشه سطر جدید رو به این DataTable اضافه کنید.
    اینطوری دیگه سطر جدید اتوماتیک به گرید هم اضافه میشه.
    امیدوارم منظورمو متوجه شده باشید.

  9. #9

    نقل قول: اضافه کردن ردیف به دیتا گرید ویو

    نقل قول نوشته شده توسط morteza271 مشاهده تاپیک
    به نظرم شما بیاین یه DataTable بسازید و اونو بدین به DataSource گردیدتون.
    بعد رد هر بار که اون تابع اجرا میشه سطر جدید رو به این DataTable اضافه کنید.
    اینطوری دیگه سطر جدید اتوماتیک به گرید هم اضافه میشه.
    امیدوارم منظورمو متوجه شده باشید.
    میشه توضیح بدین محتوای جدولی که با linq به C#‎ متصل شده روچطور به data table وارد کنم.

  10. #10
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: اضافه کردن ردیف به دیتا گرید ویو

    نقل قول نوشته شده توسط ghasem167 مشاهده تاپیک
    میشه توضیح بدین محتوای جدولی که با linq به C#‎ متصل شده روچطور به data table وارد کنم.
    متاسفانه من زیاد با linq کار نکردم ولی مطمئنا میشه اینکار رو کرد.
    این خروجی این دستور چیه؟
    db.kgselect(int.Parse(trn.Name));

  11. #11

    نقل قول: اضافه کردن ردیف به دیتا گرید ویو

    نقل قول نوشته شده توسط morteza271 مشاهده تاپیک
    متاسفانه من زیاد با linq کار نکردم ولی مطمئنا میشه اینکار رو کرد.
    این خروجی این دستور چیه؟
    db.kgselect(int.Parse(trn.Name));
    خروجی این دستور بازیابی یک جدول که شامل دو ستون یکی کد کالا و دیگری نام کالا هست.ورودی جدول هم کد گروه هست.یعنی این دستور کد ونام کالاهایی که کد گروهشون به عناون مثال 5 است رو برمی گردونه .

  12. #12
    کاربر دائمی آواتار morteza271
    تاریخ عضویت
    اسفند 1387
    محل زندگی
    مشهد
    پست
    1,723

    نقل قول: اضافه کردن ردیف به دیتا گرید ویو

    نقل قول نوشته شده توسط ghasem167 مشاهده تاپیک
    خروجی این دستور بازیابی یک جدول که شامل دو ستون یکی کد کالا و دیگری نام کالا هست.ورودی جدول هم کد گروه هست.یعنی این دستور کد ونام کالاهایی که کد گروهشون به عناون مثال 5 است رو برمی گردونه .
    پس خروجی این دستور یا یه جدولیه یا لیست و یا چیزی مشابه...
    که خیلی راحت میتونید داده هاشو به داخل یک دیتاتیبل انتقال بدین...

  13. #13

    نقل قول: اضافه کردن ردیف به دیتا گرید ویو

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
    چون با linq اطلاعات رو واکشی و دیتاسورس گریدویو رو تنظیم کردید سطر جدید رو هم به دیتاسورس باید اضافه کنید.
    مثال بر اساس LinqToSql :
    فرض کنید اطلاعات از یک StoredProcedure به نام StoredProcedure1 واکشی میشه.

    using (DataClasses1DataContext db = new DataClasses1DataContext())
    {
    dataGridView1.DataSource = db.StoredProcedure1().ToList();
    }

    این SP بعد از اضافه شدن به مدل linq به یک متد تبدیل میشه. این متد یک خروجی از نوع StoredProcedure1Result خواهد داشت که اطلاعات را بعد از واکشی به لیستی از این نوع تبدیل میکنیم(متد tolist این کار را انجام میده).
    برای افزودن به این لیست کافیه دیتاسورس گریدویو را بدست آورده و آیتم مورد نظر را به آن اضافه کرد:

    List<StoredProcedure1Result> records = dataGridView1.DataSource as List<StoredProcedure1Result>;
    StoredProcedure1Result t = new StoredProcedure1Result() { name = "Name", lastname = "LName" };
    records.Add(t);
    dataGridView1.DataSource = records.ToList();
    خیلی خوب بود.ولی من مشکلم رو با کوئری حل کرد.اینجوری:
    linqDataContext db = new linqDataContext();
    var q = from k in db.kalahas
    where k.group_id==int.Parse(trn.Name)
    select new {k.kid, k.kname };
    foreach (var row in q)
    {
    dgv.RowCount++;
    dgv.Rows[dgv.Rows.Count-1].Cells[0].Value = row.kid;
    dgv.Rows[dgv.Rows.Count-1].Cells[1].Value = row.kname;
    }

  14. #14
    کاربر دائمی آواتار aliramazani
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    سن
    38
    پست
    757

    نقل قول: اضافه کردن ردیف به دیتا گرید ویو

    چطوری میشه یه سطر به دیتاگرید اظافه کرد بدون ذخیره در دیتابیس؟ برای مثلا پیشنمایش

  15. #15
    کاربر دائمی آواتار alireza264
    تاریخ عضویت
    تیر 1390
    محل زندگی
    تهران
    پست
    264

    نقل قول: اضافه کردن ردیف به دیتا گرید ویو

    نقل قول نوشته شده توسط www.rayanehkhabar.com مشاهده تاپیک
    چطوری میشه یه سطر به دیتاگرید اظافه کرد بدون ذخیره در دیتابیس؟ برای مثلا پیشنمایش
    سلام
    بنظر از DataTable یا Dataset یا list برای پر کردن دیتاگرید استفاده میکنید. دو روش پیش روی شماست
    1- روش binding که در اون بدلیل بایند شدن اشیا فوق با دیتا گرید کافیه که شما یه سطر به DataTable یا Dataset یا list اضافه کنید

    DataTable Dt_Tbl = new DataTable();
    Dt_Tbl.Rows.Add("asd","zxc",....);

    DataSet Dt_Set=new DataSet ();
    Dt_Set.Tables[0].Rows.Add("asd","zxc",....);

    List<Person> listperson = new List<Person>();
    listperson.Add(new Person(123,"asd","hff");



    2- روش واگذاری مستقیم که یه سطر جدید به دیتا گرید اضافه می کنه

    dataGridView1.Rows.Add("asd","zxc",....);

  16. #16
    کاربر دائمی آواتار aliramazani
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    سن
    38
    پست
    757

    نقل قول: اضافه کردن ردیف به datagridview

    جواب نمیده و پیغام خطا میده

  17. #17
    کاربر دائمی آواتار alireza264
    تاریخ عضویت
    تیر 1390
    محل زندگی
    تهران
    پست
    264

    نقل قول: اضافه کردن ردیف به datagridview

    سلام
    تعداد ستون ها باید برابر تعداد پارامترهای ورودی باشه
    1.png


    private void button1_Click(object sender, EventArgs e)
    {
    dataGridView1.Rows.Add(textBox1.Text, textBox2.Text);
    }


    روش binding که البته با wpf هستش و از یه دیتا بیس میخونه و تو DataTable میریزه و بعد لیستو باهاش پر میکنه دلیلش اینه امکان جستجو بر اساس حروف با استفاده از MvvM سریعتر میشه


    listperson.Add(new Classes.Person(_Bind.Rows[i]["Cod_key"].ToString().Trim(),
    _Bind.Rows[i]["Nam_Fa"].ToString().Trim()
    (;
    dataGrid1.ItemsSource = listperson;



    <DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False" Grid.Row="9" HorizontalAlignment="Stretch" Margin="0,0,1,1" Name="dataGrid1" VerticalAlignment="Stretch"
    CanUserResizeRows="False" FlowDirection="RightToLeft" VerticalGridLinesBrush="#FF56B13B" FontFamily="B Nazanin" FontWeight="Bold"
    HorizontalContentAlignment="Right" VerticalContentAlignment="Center" FontSize="13" Background="White" Grid.Column="1"
    AlternatingRowBackground="#FFE5E5E5" SelectionChanged="dataGrid1_SelectionChanged" Loaded="dataGrid1_Loaded" Grid.ColumnSpan="2" Grid.RowSpan="2">
    <DataGrid.Columns>
    <DataGridTextColumn Binding="{Binding Path= Cod_key}" Header="کد" Width="auto" IsReadOnly="True" />
    <DataGridTextColumn Binding="{Binding Path= Nam_Fa}" Header="نام ونام خانوادگی" Width="auto" IsReadOnly="True" />

    </DataGrid.Columns>

    </DataGrid>


    با استفاده از datatable
    پر کردن ابتدا با رکورد های بانک


    DataTable _Bind = new DataTable();
    _Adapter.Fill(_Bind);
    dataGrid1.DataContext = _Bind;


    پر کردن مجدد بعد از اضافه کردن باسطر دلخواه

    _Bind.Rows.Add("123", "Abc");
    dataGrid1.DataContext = _Bind;


    من به شخصه استفاده از لیست رو ترجیح میدم چون از Mvvm میشه استفاده کرد
    لیست اولیه
    2.png
    لیست در حین جستجو
    3.png
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: png 3.png‏ (9.7 کیلوبایت, 293 دیدار)
    آخرین ویرایش به وسیله alireza264 : دوشنبه 01 تیر 1394 در 10:25 صبح

  18. #18
    کاربر دائمی آواتار aliramazani
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    سن
    38
    پست
    757

    نقل قول: اضافه کردن ردیف به datagridview

    دقیقا میخوام مثل لیست باکس عمل کنه.
    یعنی تکس باکس مستقیم بره تو دیتاگرید.

    ListBox.Items.Add(textbox.Text);

    تو کد بالا مستقیم عمل میشه واسه گرید ویو همچین امکانی هست؟

  19. #19
    کاربر دائمی آواتار alireza264
    تاریخ عضویت
    تیر 1390
    محل زندگی
    تهران
    پست
    264

    نقل قول: اضافه کردن ردیف به datagridview

    آره اگه تعداد ستونها برابر یا بیشتر از تعداد ورودیها باشه عمل میکنه و ستون ها رو از چپ به راست پر میکنه

    private void button1_Click(object sender, EventArgs e)
    {
    dataGridView1.Rows.Add(textBox1.Text, textBox2.Text);

    }





    البته اگه قبلا با list یا datatable پر شده باشه باید تعداد و نوع ورودیها با نوع فیلد های متناظر list یا datatable یکی باشه

  20. #20
    کاربر دائمی آواتار aliramazani
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان
    سن
    38
    پست
    757

    نقل قول: اضافه کردن ردیف به دیتا گرید ویو

    نقل قول نوشته شده توسط aliramazani مشاهده تاپیک
    چطوری میشه یه سطر به دیتاگرید اظافه کرد بدون ذخیره در دیتابیس؟ برای مثلا پیشنمایش
    چطوری یه سطر اضافه کنم ولی فقط برای یکی از ستونها داده ارسال بشه
    مثلا دستور dgv.rows.add به تمام column ها داده میفرسته ولی من میخوام یه سطر اضافه بشه و فقط به یه ستون داده بده

  21. #21

    نقل قول: اضافه کردن ردیف به دیتا گرید ویو

    سلام
    من اول دیتا گریدم رو با تعداد ستونهای مورد نظر درست می کنم و مثلا اسمشو می زارم dgv
    و بعد متدی مینویسم به اسم( BindDataGrid )که دیتا گریدم رو پر کنه , و بعد از هر تغییر اون متد رو فراخوانی می کنم
    نکته اول اینکه اطلاعات رو داخل یه لیست مثلا لیست result ذخیره کن . هر بار که اطلاعاتی به لیستت اضافه میشه یا کم میشه یا ویرایش میشه و لیست رو بروز می کنی متد BindDataGrid رو فراخوانی کن
    خلاصه متد رو برات می فرستم. من سالهاست از این روش استفاده می کنم و تا حالا مشکلی پیش نیومده. اگه سوالی داشتی باهام تماس بگیر 09001205554
    code.jpg






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

  1. اضافه کردن سطر در datagridview
    نوشته شده توسط shahab_gh712 در بخش C#‎‎
    پاسخ: 2
    آخرین پست: پنج شنبه 18 مرداد 1386, 12:09 عصر
  2. اضافه کردن ردیف به فرم
    نوشته شده توسط شاپرک در بخش Access
    پاسخ: 2
    آخرین پست: پنج شنبه 11 خرداد 1385, 08:00 صبح
  3. اضافه کردن ردیف در DBGrid
    نوشته شده توسط فرهاد.ف در بخش برنامه نویسی در Delphi
    پاسخ: 9
    آخرین پست: سه شنبه 05 اردیبهشت 1385, 07:35 صبح
  4. پاسخ: 2
    آخرین پست: پنج شنبه 17 فروردین 1385, 22:49 عصر
  5. اضافه کردن ردیف به دیتاگرید
    نوشته شده توسط jannati در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: سه شنبه 24 شهریور 1383, 07:59 صبح

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

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