PDA

View Full Version : چند کالا در دیتاگریدویو



mahnaz20
شنبه 05 تیر 1389, 13:42 عصر
با سلام خدمت همه برنامه نویسان



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



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



همونطور که میدونید ، یه فاکتور فروش میتونه چند قلم جنس داشته باشه ، ولی در برنامه من کابر فقط میتونه یک کالا در فاکتور داشته باشه !!



کسی میدونه باید چه تغییری در کدم بدم تا کابر بتونه چند قلم جنس در فاکتور فروشش داشته باشه ؟


private void textbox9_TextChanged(object sender, EventArgs e)
{
if (textbox9.TextLength == 7)
{
SqlDataAdapter da1 = new SqlDataAdapter("SELECT barcod_kala ,nam_kala ,vahed_kala ,gheimat_kala FROM jadval_kala where barcod_kala='" + textbox9.Text + "'", "Data Source=.;Initial Catalog=store;Integrated Security=True");
DataSet ds1 = new DataSet();
DataTable dataTable = new DataTable();
da1.Fill(dataTable);
this.dataGridView1.DataSource = AutoNumberedTable(dataTable);
textbox9.SelectAll();

{
{

iman_me
شنبه 05 تیر 1389, 14:09 عصر
ارتباط بین جدول هاتون رو چک کنید

Rejnev
شنبه 05 تیر 1389, 14:13 عصر
حداقل جداول مورد نیاز:
کالا: کد- نام
مشتری:کد - نام
فاکتور:کد(شماره فاکتور)-تاریخ-کد مشتری
جزئیات فاکتور:شماره فاکتور-کد کالا-تعداد-مبلغ

اینا رو رعایت کردین؟

mahnaz20
شنبه 05 تیر 1389, 18:06 عصر
از راهنمایی های دوستان ، ممنونم ولی :



در این فرم ، اطلاعاتی که توی دیتاگریدویو، نمایش داده میشه ، فقط از یه جدول میاد : jadval_kala ‏



من توی این قسمت با جدولهای دیگه بانکم کار نمیکنم . شاید سوالمو بد بیان کردم !



این فرم یه فاکتور فروشه (مثل وقتی که شما از یه سوپر مارکت ده قلم جنس میخرین و موقع خروج به شما یه فاکتور داده میشه که شامل لیست تمام اجناسی هست که شما خریدین )



من میخوام الآن همچین فاکتوری طراحی کنم ، ولی مشکلم اینه که وقتی فرم لود میشه ، من یه بارکد رو توی تکست باکس وارد میکنم ومشخصات اون کالا رو در دیتاگرید ویو میبینم ، ولی وقتی بارکد کالای دوم رو وارد میکنم ، مشخصات کالای اول از دیتا گرید ویو میره و مشخصات کالای دوم جایگزین اون میشه !!



یعنی فاکتور فروش من امکان نمایش چند قلم کالا رو نداره ، فقط یکی رو نمایش میده !



من میخام وقتی بارکد دوم رو وارد تکست باکس میکنم ، مشخصات اون در ردیف دوم دیتاگریدویو نمایش داده بشه ، ضمن اینکه ، مشخصات کالای اول هم در سطر اول دیتاگریدویو هست !



سومی در سطر سوم والی آخر...

Rejnev
شنبه 05 تیر 1389, 18:37 عصر
به نظر من همیشه سعی کنید از گرید ویو برای نمایش اطلاعات استفاده کنید.
حالا گرید باید چی رو نشون بده؟ معلومه... یک جدول(DataTable) که ما از بانک گرفتیم و پرش کردیم و روی Datasource گرید تنظیمش کردیم.
شما باید با اون datatable کار کنید و وقتی تغییری روش ایجاد بشه خود به خود توی گرید هم تغییرات رو نمایش میده.
اگه شما از طریق یک بارکد یک رکورد رو از بانک میخونید باید اون رکورد رو به datatable اضافه کنید.
پس روش کار با datatable و sqlDataAdapter و DataRow و متدهایی مثل Datatable.Rows.Add و یا AddNew در datatable رو مطالعه کنید.

behzadk
شنبه 05 تیر 1389, 22:01 عصر
یه روش دیگه فقط datagridview.enableuseraddrow=true کن جواب داده و من خودم از این روش استفاده کردم و جواب داده هیج محدودیتی هم ندارد