PDA

View Full Version : سوال: مشکل با دیتا بیس



kazemsoft
دوشنبه 24 خرداد 1389, 17:58 عصر
سلام خسته نباشید.

یک سوال خیلی ساده و پیش افتاده، (پیش پا افتاده از این جهت چون من خیلی مبتدی هستم هر کاری میکنم براش راه حلی پیدا نمی کنم):
مشکل از اینجاست که من می خوام یک treeview داشته باشم که اطلاعات tree رو (ندهاشو) از توی بانک اطلاعاتی بخونه. خوب تا اینجاشو براش کد نوشتم. حالا می خوام تو فاز بعدی یک کار دیگه بکنم و از بانک اطلاعاتی بخوام هر رکوردی در بانک اطلاعاتی که در فیلد parent شان چیز دیگری است لیست کند. مشکل اینجاست که من هر وقت sqlcommand دومی رو فرا می خونم همون نتایج قبلی رو بر میگردونه برام در صورتیکه dataset رو clear هم میکنم
کدی که برای این قسمت بکار می برم اینه:

Dim con As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\usersdb.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")
con.Open()
Dim da As New SqlDataAdapter("SELECT * FROM groups WHERE parent = ''", con)
Dim ds As New DataSet()
da.Fill(ds, "groups")
groupTable = ds.Tables("groups")

For treeindex As Integer = 1 To groupTable.Rows.Count
TreeView1.Nodes.Add(groupTable.Rows((treeindex - 1))("name"))

Next
con.Close()
Dim cmd As New SqlCommand
cmd.CommandText = "SELECT name FROM groups WHERE parent = 'p'"
cmd.Connection = con
con.Open()
cmd.ExecuteNonQuery()
ds.Clear()
da.Fill(ds, "gr")
Dim newTable As DataTable = ds.Tables("gr")
MsgBox(newTable.Rows(0).Item("name"))
MsgBox(newTable.Rows(1).Item("name"))
MsgBox(newTable.Rows(2).Item("name"))
con.Close()

البته یک راه حلی سر پایی براش پیدا کردم و اون اینکه دوباره از نو شی های sqldataadapter و dataset جدید برای مرحله دوم بوجود بیاورم اما میدونم خیلی خیلی احمقانه است اینکار.

ممنون میشم منو راهنمایی کنید، دارم دیوونه میشم :عصبانی++:

kazemsoft
دوشنبه 24 خرداد 1389, 20:08 عصر
مطمئنم مشکل خیلی پیش پا افتاده است! (کمبود اطلاعات من)
لطفاً کمک کنید. {جای دوری نمی رود} :دی

hero4000
سه شنبه 25 خرداد 1389, 08:54 صبح
دوست من بعد از ds.Clear() دستور زير رو هم بنويس چون منم بعضي وقتها اين مشکل رو ميخوردم


If Not ds.Tables(0) Is Nothing Then ds.Tables(0).Columns.Clear()

kazemsoft
چهارشنبه 26 خرداد 1389, 00:07 صبح
ممنون دوست عزیز. دستت درد نکنه
یک سوال دیگه. من برنامه ام با بانک اطلاعاتی تقریباً تمام شده اما یک مشکل خیلی خیلی خاص وجود داره و اون اینه که همه تغیراتیی که توی بانک اطلاعاتی من میدم بصورت فیزیکی در بانک اطلاعاتی ثبت نمیشه بلکه بصورت شبیه سازی شده رکورد های جدید من واردش میشه و با خروج از project و ورود دوباره همه ی رکوردهام حذف میشه و البته و صد البته با باز کردن table فایل sql ام از طریق server explorer خود VS تغیرات خودم رو نمی بینم؟!
دستوری برای اینکار هست که تغیرات اعمال شده دیتا ست رو توی دیتا بیس هم منتقل کنه؟!

kazemsoft
چهارشنبه 26 خرداد 1389, 00:24 صبح
راستی تکه کد:
If Not ds.Tables(0) Is Nothing Then ds.Tables(0).Columns.Clear()
با اینکه در عمل جواب نداد اما کمکم کرد تا به دستور ds.reset() برسم. گمان میکنم با این دستور درست میشه کارم اما هنوز سوال بالام سر جاش هست... ممنون میشم جواب بده یک نفر.

hero4000
چهارشنبه 26 خرداد 1389, 12:28 عصر
دوست عزيز تکه کد ذخيره سازي داده هات رو بذار ببينيم چه مشکلي هست