ذخیره ستون های یک datagridview
سلام. من یه سری ستون توی یک datagridview اضافه کردم که محتویاتی از sql میگیره و در این ستون ها جا میگیره. اگه datagridview.datasource رو null کنم و دوباره محتویات sql رو توی dvg بریزم،ستون های اولیه ای که درست کرده بودم از بین میره. چطور میتونم این ستون ها و تنظیماتشو ذخیره کنم تا بعد از null کردن dvg دوباره اضافه بشن؟
نقل قول: ذخیره ستون های یک datagridview
کسی نیست جواب ما رو بده؟! :گریه:
نقل قول: ذخیره ستون های یک datagridview
تو ی حلقه for بزار. اینجوری
for (int i = 0; i < dataGridView11.RowCount; i++)
{
SqlConnection conupdate = new SqlConnection("server=(local);database=bank name;trusted_connection=yes");
SqlCommand comupdate = new SqlCommand(دستور آپدیت, conupdate);
conupdate.Open();
comupdate.ExecuteNonQuery();
conupdate.Close();
}
نقل قول: ذخیره ستون های یک datagridview
خب شما مگه از DataTable استفاده نمیکنی؟؟؟
خب تا وقتی که DataTable شما new نشه که خالی نمیشه و همیشه اطلاعات رو تو خودش داره
شما اطلاعات رو بریز توی DataTable و هر موقع خواستی ازش استفاده کن
در واقع با این کار یه جورایی میشه گفت اطلاعاتو save کردین
نقل قول: ذخیره ستون های یک datagridview
نقل قول:
نوشته شده توسط
erfan_urchin
خب شما مگه از DataTable استفاده نمیکنی؟؟؟
خب تا وقتی که DataTable شما new نشه که خالی نمیشه و همیشه اطلاعات رو تو خودش داره
شما اطلاعات رو بریز توی DataTable و هر موقع خواستی ازش استفاده کن
در واقع با این کار یه جورایی میشه گفت اطلاعاتو save کردین
من اینکار رو می کنم. اما بعد از اینکه dvg.datasource رو null می کنم و دوباره محتویات datatable رو توی dvg می ریزم، ستون هایی که درست کرده بودم از بین میره و یکسری ستون با تنظیم خودش قرار میده. برای من عنوان و سایز عرض ستون ها مهم هست که از بین میره و یه چیز دیگه مینویسه...
نقل قول: ذخیره ستون های یک datagridview
خب شما مگه توی کد های button ای که گریدویو رو پر میکنه تنظیماتشو انجام ندادی؟؟؟
نگاه کن ، شما وقتی میتونی تنظیماتی مثل عرض ستون ها رو انجام بدی که گریدویو پر باشه
شما برای تعیین عرض ستون ها فکر میکنم به احتمال زیاد از این کد استفاده میکنی
dataGridView1.Columns[0].Width = 50;
خب این کد یعنی چی؟؟؟ یعنی این که برو تو گرید ویو اولین ستونشو پیدا کن و عرضشو 50 کن
پس این کد باید وقتی عمل کنه که گرید ویو پر شده باشه یعنی کد زیر اتفاق افتاده باشه
dataGridView1.DataSource = dt;
اگه شما قبل این که گریدویو رو پرکرده باشین بیاین بگین عرض ستون اولو 50 قرار بده کار نمیکنه چون ستونی تو گریدویو وجود نداره که بخواد بکنه 50
پس شما باید بعد هر بار پر کردن گریدویو تنظیماتتو انجام بدی
طبیعیه که شما dgv.datasource رو null کنید تنظیماتشم باهاش پاک میشه
به خاطر همین میگم بعد هر بار پرکردن گریدویو باید تنظیماتش هم اجرا بشه یعنی یه چیزی مثل کد زیر
private void button1_Click(object sender, EventArgs e)
{
SqlConnection sc = new SqlConnection("Data Source=.;Initial Catalog=db2;Integrated Security=True");
SqlDataAdapter sd = new SqlDataAdapter("select * from t1",sc);
DataTable dt = new DataTable();
sd.Fill(dt);
dataGridView1.DataSource = dt;
dataGridView1.Columns[0].Width = 50;
dataGridView1.Columns[1].Width = 60;
dataGridView1.Columns[0].HeaderText = "نام";
dataGridView1.Columns[1].HeaderText = "نام خانوادگی";
}
نقل قول: ذخیره ستون های یک datagridview
نقل قول:
نوشته شده توسط
Amin69
من اینکار رو می کنم. اما بعد از اینکه dvg.datasource رو null می کنم و دوباره محتویات datatable رو توی dvg می ریزم، ستون هایی که درست کرده بودم از بین میره و یکسری ستون با تنظیم خودش قرار میده. برای من عنوان و سایز عرض ستون ها مهم هست که از بین میره و یه چیز دیگه مینویسه...
دستور ات مربوط به بایند دیتا گرید رو داخل یه متد قرار بدین بعد هرجا که تغییراتی در اطلاعات بوجود آمد ، حالا حذف و اضافه و آپدیت یا هرچی ، اون متد بایند گرید رو در آخر دستوراتتون فراخوانی کنین
1 ضمیمه
نقل قول: ذخیره ستون های یک datagridview
نقل قول:
نوشته شده توسط
erfan_urchin
خب شما مگه توی کد های button ای که گریدویو رو پر میکنه تنظیماتشو انجام ندادی؟؟؟
نگاه کن ، شما وقتی میتونی تنظیماتی مثل عرض ستون ها رو انجام بدی که گریدویو پر باشه
شما برای تعیین عرض ستون ها فکر میکنم به احتمال زیاد از این کد استفاده میکنی
dataGridView1.Columns[0].Width = 50;
خب این کد یعنی چی؟؟؟ یعنی این که برو تو گرید ویو اولین ستونشو پیدا کن و عرضشو 50 کن
پس این کد باید وقتی عمل کنه که گرید ویو پر شده باشه یعنی کد زیر اتفاق افتاده باشه
dataGridView1.DataSource = dt;
اگه شما قبل این که گریدویو رو پرکرده باشین بیاین بگین عرض ستون اولو 50 قرار بده کار نمیکنه چون ستونی تو گریدویو وجود نداره که بخواد بکنه 50
پس شما باید بعد هر بار پر کردن گریدویو تنظیماتتو انجام بدی
طبیعیه که شما dgv.datasource رو null کنید تنظیماتشم باهاش پاک میشه
به خاطر همین میگم بعد هر بار پرکردن گریدویو باید تنظیماتش هم اجرا بشه یعنی یه چیزی مثل کد زیر
}
ممنون ولی... این کد جواب نمیده...
من ستون ها رو در محیط Editor دیتاگریدویو اضافه کردم و خصوصیاتی چون پهنا، نام، هدر و ... رو اونجا بهش دادم...
ضمیمه 106756
نقل قول: ذخیره ستون های یک datagridview
DataTable dt = new DataTable();
dt.Clear();
dataGridViewX2.DataSource = dt;
نقل قول: ذخیره ستون های یک datagridview
دوست عزیز فقط کافیه قبل از اینکه dataGridView.DataSource
رو ست کنی این کد را قرار بدهی dataGridView.AutoGenerateColumns = false;