PDA

View Full Version : آپديت datagridview



mori5858
شنبه 29 تیر 1392, 12:16 عصر
ديتاگريد و فيلد هايي كه ميخوام به بانك وارد كنم روي دوتا فرم جدا از هم هستن. يني تكست باكس هايي كه ميخوام مقاديرشون به بانك اضافه بشه روي يه فرم و ديتاگريد روي يه فرم ديگه هست.
ميخوام همون لحظه كه اطلاعات رو ثبت بانك كردم ديتاگريدم روي فرم ديگه بروز بشه. از چه دستوري بايد استفاده كنم؟
از Linq براي اتصال به بانك استفاده ميكنم

csharpprogramer88
شنبه 29 تیر 1392, 12:23 عصر
سلام
میتونی توی دکمه درج اطلاعات پس از درج اطلاعات فرم گرید را نشان بدی و در فرم گرید در رویداد فرم لود کد select از جدول را بنویسی و به گرید بایند کنی

mori5858
شنبه 29 تیر 1392, 12:29 عصر
اين دستورات دكمه درج

var db = new LinqDataContext();
var f = new frm_Vam();
f.dtGvVam.DataSource = db.tblVams;

و اينم توي فرم لود


this.tblVamTableAdapter.Fill(this.dataSetVam.tblVa m);
منظورتون همين كد هاس؟

csharpprogramer88
شنبه 29 تیر 1392, 12:47 عصر
کد های ارسالی را بین علامت # توی کادر بالا بزار مشخص باشه چیه


متاسفانه linq وارد نیستم وی الگوریتم کار اینه
1- در فرم اولت که فرم درج اطلاعاته ، دکمه و تکست باکس و لیبل میزاری روی دکمه دابل کلیک میکنی و درستور insert را مینویسی
2-بعد که دستور insert را نوشتی باید فرم جدید را نمایش بدی


frm_inser frm = new frm_inser();
frm.Show();

frm_inser اسم فرمیه که توی اون گرید ویو داری ،

3- حالا برو در فرمی که گرید داری از اونجا در رویداد form_load یک کد select از اون جدولی که در فرم قبلی insert کردی بگیر و به گرید بایند کن

کلیت کار همینه

mori5858
شنبه 29 تیر 1392, 14:44 عصر
اگه فيلدها و دكمه ثبت روي همون فرم باشه كار ميكنه اما من اطلاعات رو از يه فرم ديگه ميگيره
فقط دستور آپديت كردن ديتاگريد رو ميخوام كه توي دكمه ثبت بنويسم تا همون لحظه ديتاگريد توي فرم ديگه آپديت بشه

mori5858
یک شنبه 30 تیر 1392, 11:44 صبح
كسي بلد نبود؟ :ناراحت:

Hkarimi
یک شنبه 30 تیر 1392, 12:08 عصر
ببین ... خاصیت Modifire مربوط به DataGridViewت رو بذا رو internal یا public که بتونی از فرمای دیگه هم بهش دسترسی داشته باشی. حالا دیگه میتونی از تو همین فرم باهاش کار کنی.

mori5858
یک شنبه 30 تیر 1392, 12:37 عصر
ببین ... خاصیت Modifire مربوط به DataGridViewت رو بذا رو internal یا public که بتونی از فرمای دیگه هم بهش دسترسی داشته باشی. حالا دیگه میتونی از تو همین فرم باهاش کار کنی.

اين جاش مشكلي نيس. همين كارو كردم
فقط ميخوام بعد اينكه توي فرم ديگه اطلاعات رو ثبت كردم همون لحظه ديتاگريد بروز بشه و اطلاعات اضافه شده رو نمايش بده

Hkarimi
یک شنبه 30 تیر 1392, 12:44 عصر
باید براش کوئری بنویسی. همینجوری که تغییراتش اعمال نمیشه!!! همون کدی که احتمالا توی فرم لود نوشتی (که توسطش جدولت پر میشه) رو توی این فرم دومی هم بنویس. چه مشکلی وجود داره. خب شما که به dataGridView فرم اولی دسترسی داری... کدشو بنویس خلاص شه بره دیگه.

mori5858
یک شنبه 30 تیر 1392, 12:48 عصر
باید براش کوئری بنویسی. همینجوری که تغییراتش اعمال نمیشه!!! همون کدی که احتمالا توی فرم لود نوشتی (که توسطش جدولت پر میشه) رو توی این فرم دومی هم بنویس. چه مشکلی وجود داره. خب شما که به dataGridView فرم اولی دسترسی داری... کدشو بنویس خلاص شه بره دیگه.

دستورات اعمال ميشه فقط براي نمايش بايد يه بار فرم ديتاگريد رو ببندي دوباره باز كني تا دوباره لود بشه
اما وقتي دستوراتي كه توي فرم لود هست رو توي دكمه ثبت كپي كنم خطا ميده

khokhan
یک شنبه 30 تیر 1392, 12:53 عصر
دستورات اعمال ميشه فقط براي نمايش بايد يه بار فرم ديتاگريد رو ببندي دوباره باز كني تا دوباره لود بشه
اما وقتي دستوراتي كه توي فرم لود هست رو توي دكمه ثبت كپي كنم خطا ميده
.................................................. ..................!!!!!!!!!!!!!!!!!!????????????

mori5858
یک شنبه 30 تیر 1392, 12:57 عصر
.................................................. ..................!!!!!!!!!!!!!!!!!!????????????

سي شارپ من 2008 هستش باز نميشه

mori5858
یک شنبه 30 تیر 1392, 17:04 عصر
كسي بلد نبود؟؟؟ :ناراحت:

parvizwpf
یک شنبه 30 تیر 1392, 17:11 عصر
مقدار آبجکت دیتا گرید رو به اون فرم دکمه پاس بده حالا بهش دسترسی داری حالا میتونی اطلاعات رو دوباره کوئری بزنی یا رفرش کنی.

mori5858
یک شنبه 30 تیر 1392, 17:14 عصر
مقدار آبجکت دیتا گرید رو به اون فرم دکمه پاس بده حالا بهش دسترسی داری حالا میتونی اطلاعات رو دوباره کوئری بزنی یا رفرش کنی.

يني چيكار كنم؟

parvizwpf
یک شنبه 30 تیر 1392, 17:25 عصر
توی کانستراکتور فرم دکمه یه مقدار از نوع datagriview بزار بعد جایی که داری اون فرمو صدا میزنی این گرید ویو رو بهش پاس بده.

mori5858
یک شنبه 30 تیر 1392, 17:46 عصر
توی کانستراکتور فرم دکمه یه مقدار از نوع datagriview بزار بعد جایی که داری اون فرمو صدا میزنی این گرید ویو رو بهش پاس بده.

منظورتون همين كد هستش؟


var db = new LinqDataContext();
var f = new frm_Vam();
f.dtGvVam.DataSource = db.tblVams;

parvizwpf
یک شنبه 30 تیر 1392, 17:56 عصر
خب این کجاست تو فرم گرید یا دکمه؟ اگه دکمه هست که اشتباهه داره چرا نیو میکنه؟ من اون کد رو گفتم چون نیویی در کار نیست.

mori5858
یک شنبه 30 تیر 1392, 17:59 عصر
خب این کجاست تو فرم گرید یا دکمه؟ اگه دکمه هست که اشتباهه داره چرا نیو میکنه؟ من اون کد رو گفتم چون نیویی در کار نیست.

نيو كردن براي ايجاد يه شي از فرم هستش كه بشه به ديتاگريد روي صفحه دسترسي داشت ديگه
db هم كه براي اتصال به بانك از طريق لينك استفاده ميشه

parvizwpf
یک شنبه 30 تیر 1392, 18:08 عصر
خب یعنی الان فرم vam باز هست دوباره داری اونجا نیو میکنی؟

mori5858
یک شنبه 30 تیر 1392, 18:12 عصر
خب یعنی الان فرم vam باز هست دوباره داری اونجا نیو میکنی؟

بله
ديتاگريد روي فرم Vam هست. براي اينكه ديتاگريد دستور dtGvVam.DataSource = db.tblVams شناسايي كنه يه متغير از نوع فرم تعريف كردم تا بشه به ديتاگرديش دسترسي داشت
كارم غلطه؟

parvizwpf
یک شنبه 30 تیر 1392, 18:19 عصر
صدو بیست درصد غلطه . میدونی نیو یعنی چی؟ خودت یه کم فکر کن نه جان من فکر کن. همون کاری که گفتم بکن :

dokme form
public class formdokme:form
{
datagridview dgv;
public void formdokme(datagridview _dgv)
{
dgv=_dgv;
}
}

//jaei ke mikhai forme dokme baz bebshe
formdokme fd=new formdoke(this.datagridview1);


حالا تو فرم دکمه با dgv به اون دسترسی داری بدون هیچ نیویی.

mori5858
یک شنبه 30 تیر 1392, 18:56 عصر
راستش من زياد وارد نيستم براي همين منظورتون رو درست متوجه نميشم.
اصلا شايد نيازي هم به نيو كردن نباشه
مشكل من فقط آپديت كردن ديتاگريد هستش. اگه اطلاعات روي همون فرم باشن ديتاگريد بروز ميشه اما وقتي از روي يه فرم ديگه اين كارو انجام ميدم بروز نميشه و بايد يه بار فرم رو ببندم دوباره باز كنم