PDA

View Full Version : درخواست راهنمائی



mahan8088
یک شنبه 24 تیر 1386, 12:42 عصر
سلام دوستان
لطفا منو راهنمائی کنید
من روی فرم برنامه ام یه DataGridView درست کردم و اونو به یه DataBase وصلش کردم حالا وقتی که این DataDridView داره اطلاعات DataBase منو نشان میده میخوام با زدن دکمه Enter که یک سطر جدید ایجاد میشه ، اطلاعاتی رو اضافه کنم و سپس با زدن Button1 که روی فرم ایجاد کردم کلیه تغییرات روی DataGridView به DataBase انتقال پیدا بکنه
( فرض کنید این فرم ، فرم ایجاد و اصلاح سند در حسابداری هست )
لطفا راهنمائی کنید که توی #C از چه دستوری استفاده بکنم
مرسی

niksoft
یک شنبه 24 تیر 1386, 13:03 عصر
سلام



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

mahan8088
یک شنبه 24 تیر 1386, 13:11 عصر
چرا از طریق DataSet متصل شدم
میخوام تغییراتم در DataGridView به DataSet و سپس به DataBase منتقل شوند

niksoft
یک شنبه 24 تیر 1386, 13:35 عصر
برای اتصال DataGridView به دیتاست میتوانید از کد زیر استفاده کنید

با حساب اینکه شما در DataSet2 جدولی به نام Orders دارید که نام TableAdapter آن به طور پیش فرض OrdersTableAdapter است



Dim adapter As New DataSet2TableAdapters.OrdersTableAdapter
Dim dataset As New DataSet2
Dim binding As New System.Windows.Forms.BindingSource

adapter.Fill(dataset.Orders)
binding.DataSource = dataset
binding.DataMember = dataset.Orders.ToString
DataGridView1.DataSource = binding


و اما برای آپدیت کافی است کد زیر را اجرا کنید



adapter.Update(dataset.Orders)

مهدی رحیم زاده
یک شنبه 24 تیر 1386, 13:39 عصر
من تا حالا با دیتا گرید کار نکردم اما تو حالت معمولی ( نمایش داده ها توی textbox ) با دستور update خود Sql این کارو انجام دادم ...
از اون استفاده کن ...
امیدوارم که جواب بده ...
من چون امتحان دارم نمیتونم که تستش کنم ...
اگر میشه تستش کن و بعد جواب رو برای منم بگو ...
تو بانک اکسس هم مشکلی نداره ...

mahan8088
دوشنبه 25 تیر 1386, 12:33 عصر
نمی تونم از textBox استفاده کنم ، آخه میخوام مثل برنامه ACCESS به محض زدن دکمه ENTER یک سطر جدید ایجاد باشه

mahan8088
پنج شنبه 28 تیر 1386, 19:55 عصر
برای اتصال DataGridView به دیتاست میتوانید از کد زیر استفاده کنید

با حساب اینکه شما در DataSet2 جدولی به نام Orders دارید که نام TableAdapter آن به طور پیش فرض OrdersTableAdapter است



Dim adapter As New DataSet2TableAdapters.OrdersTableAdapter
Dim dataset As New DataSet2
Dim binding As New System.Windows.Forms.BindingSource

adapter.Fill(dataset.Orders)
binding.DataSource = dataset
binding.DataMember = dataset.Orders.ToString
DataGridView1.DataSource = binding


و اما برای آپدیت کافی است کد زیر را اجرا کنید



adapter.Update(dataset.Orders)



اینا رو چطور میتونم تو ‍#C بنویسم و اجراش کنم
لطفا بیشتر توضیح بدین ممنونم

PC2st
پنج شنبه 28 تیر 1386, 23:18 عصر
میخوام با زدن دکمه Enter که یک سطر جدید ایجاد میشه ، اطلاعاتی رو اضافه کنم و سپس با زدن Button1 که روی فرم ایجاد کردم کلیه تغییرات روی DataGridView به DataBase انتقال پیدا بکنه
در رویداد KeyDown هر وقت کلید Enter فشرده شده بود، مورد بررسی قرار دهید که آیا رکورد جاری (رکوردی که کاربر روی آن قرار گرفته)، آحرین رکورد است یا خیر، اگر کاربر روی آخرین رکورد بود، یک سطر جدید به dataGridView اضافه کنید و در آخر سر هر وقت کاربر خواست اطلاعات را save کند، به کمک متد Update از DataAdapter، بانک اطلاعاتی را بروز رسانی نمائید.
اگر لازم داشتید در مورد متد Update، فکر کنم (مطمئن نیستم) در سایت مطالبی بتونید پیدا کنید.

egoldashraf
پنج شنبه 28 تیر 1386, 23:40 عصر
اینجا میتونید کدها رو بهم تبدیل کنید

http://www.developerfusion.co.uk/utilities/convertvbtocsharp.aspx

mahan8088
شنبه 30 تیر 1386, 13:04 عصر
در رویداد KeyDown هر وقت کلید Enter فشرده شده بود، مورد بررسی قرار دهید که آیا رکورد جاری (رکوردی که کاربر روی آن قرار گرفته)، آحرین رکورد است یا خیر، اگر کاربر روی آخرین رکورد بود، یک سطر جدید به dataGridView اضافه کنید و در آخر سر هر وقت کاربر خواست اطلاعات را save کند، به کمک متد Update از DataAdapter، بانک اطلاعاتی را بروز رسانی نمائید.
اگر لازم داشتید در مورد متد Update، فکر کنم (مطمئن نیستم) در سایت مطالبی بتونید پیدا کنید.


میشه بگین چطوری بررسی کنم که رکورد آخره یا نه ، میشه قطعه کدش رو بنویسین
مرسی

ghafoori
شنبه 30 تیر 1386, 14:07 عصر
دوست عزیز با این کد

private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter) {
if (this.dataGridView1.CurrentRow.Index == this.dataGridView1.Rows.Count - 1) {
this.dataGridView1.Rows.Add();
}
}
}