PDA

View Full Version : حذف فیلترشده



hamed-p
شنبه 07 بهمن 1385, 21:11 عصر
با چه دستوری، برای ِ نمونه: همه‌ی ِ رکوردهایی که فیلد ِ FileNo آن xxxx باشد را حذف کنیم!؟

programmermp
شنبه 07 بهمن 1385, 21:25 عصر
با چه دستوری، برای ِ نمونه: همه‌ی ِ رکوردهایی که فیلد ِ FileNo آن xxxx باشد را حذف کنیم!؟




dim strsql as string="delete from table1 where field_no = 'xxxxxx'"

hamed-p
یک شنبه 08 بهمن 1385, 09:46 صبح
dim strsql as string="delete from table1 where field_no = 'xxxxxx'"


با سپاس
می‌شه بیش‌تر توضیح بدهید!؟
یعنی با توانایی‌های ِ vb.net 2005 چه‌جوری می‌یشه از این دستور بهره بُرد!؟

reza_rad
یک شنبه 08 بهمن 1385, 09:48 صبح
برای اجرای کد بالا می تونید از sqlCommand استفاده کنید
در موردش توی تالار بحث شده. جستجو کنید...

hamed-p
یک شنبه 08 بهمن 1385, 11:44 صبح
درود
ببنید من از Vb.net 2005 بهره می‌برم.
من یک DataSet دارم یک Table Adapter و یک Binding Source ...
خب از Sql Command بهره ببرم.
می‌شه بفرمایید جلوی ِ connection چی بنویسم!؟
چون هنگامی‌که این‌جوری نوشتم:


Dim delfileno As SqlClient.SqlCommand = New SqlClient.SqlCommand()
delfileno.Connection = taPishineDaru.Connection
delfileno.CommandText = "delete from PishineDaru where fileno = '1002'"
delfileno.CommandType = CommandType.Text
delfileno.ExecuteNonQuery()


این پیغام را داد!


ExecuteNonQuery requires an open and available Connection. The connection's current state is closed.

Alireza_Salehi
یک شنبه 08 بهمن 1385, 11:54 صبح
Dim delfileno As SqlClient.SqlCommand = New SqlClient.SqlCommand()
delfileno.Connection = taPishineDaru.Connection
delfileno.CommandText = "delete from PishineDaru where fileno = '1002'"
delfileno.CommandType = CommandType.Text
taPishineDaru.Connection.open()
delfileno.ExecuteNonQuery()
taPishineDaru.Connection.Close()


جستجو تو تالار یادت نره!

hamed-p
یک شنبه 08 بهمن 1385, 12:06 عصر
درسته
زود پرسیدم

این‌جوری هم نوشتم کار داد:



Dim delfileno As SqlClient.SqlCommand = New SqlClient.SqlCommand("delete from PishineDaru where fileno = '1000'")
delfileno.CommandType = CommandType.Text
taPishineDaru.Connection.Open()
delfileno.Connection = taPishineDaru.Connection
delfileno.ExecuteNonQuery()

hamed-p
یک شنبه 08 بهمن 1385, 12:41 عصر
حالا یه مشکل ِ دیگه؛
به جدول ِ من، نزدیک ِ ده جدول ِ دیگه، در پیوند اند.
یعنی رکوردی از این جدول پاک نمی‌شه، مگر این‌که همه‌ی ِ رکوردهایی که به این FileNo باشند پیش‌تر پاک شده باشه.

این‌کار نزدیک ِ ده‌تا SQl Command دیگه می‌خود که هم کدنویسی ِ زیادی داره و هم این‌که سُرعت ِ برنامه می‌یاد پایین.

آیا راهی هست که با حذف ِ یک رکورد از جدول ِ مادر، اون رکورد از همه‌ی ِ جدول‌های ِ فرزند هم پاک بشه!؟

Alireza_Salehi
یک شنبه 08 بهمن 1385, 13:20 عصر
اولا وقتی از یه کانکشن استفاده کردی سعی کن وقی دیگه لازم نیست حتما اونو ببندی (دلیلش هم اگه جستجو کنی حتما پیدا میکنی)

موقع طراحی ارتباط بین جداول Cascade Delete رو فعال کن در این صورت اگر از جدولی که فیلد کلید آن اصلی است رکوردی پاک شود در جدول های دیگر که به عنوان کلید فرعی به آن جدول مرتبط هستند رکورد های مورد نظر حذف می شود!
برای Update هم قابل استفاده است!

hamed-p
شنبه 12 اسفند 1385, 07:57 صبح
درود
ببخشید دوستان، می‌توانید بفرمایید این دستورها چه اشتباهی دارد که اصلاً هیچ‌کاری انجام نمی‌دهد!؟





Dim command1 As String = "SELECT NomreView.* FROM NomreView Where (strNameTerm ='" & cbSathDaryaft.Text & "')"
Dim SathFilter As SqlClient.SqlCommand = New SqlClient.SqlCommand(command1)
SathFilter.CommandType = CommandType.Text
SathFilter.Connection = SqlConnection1
SqlConnection1.Open()
SathFilter.ExecuteNonQuery()
SqlConnection1.Close()
NomreViewAdapter.Update(Me.DstAmuzesh.NomreView)
NomreViewAdapter.Fill(Me.DstAmuzesh.NomreView)

Alireza_Salehi
شنبه 12 اسفند 1385, 12:39 عصر
1. این NomreView.* دیگه چیه همون * کافیه.
2. شما یک Command و یک Connection تعریف کردی ، اون متد ExecuteNonQuery که استفاده کردی فقط یک عدد برمیگردونه، نه اطلاعات !
یه دیتاستی ، دیتا تیبلی ، اصلا در کد شما معلوم نیست داده ها کجا باید برن !!!

3.این Adapter هم که به این Command و Connection ربطی نداره !


فکر کنم کد رو ناقص گذاشتی!!!

hamed-p
شنبه 12 اسفند 1385, 12:50 عصر
فکر کنم اینو کم داشت:
NomreViewAdapter.SelectCommand = SathFilter

حالا دیگه کار می‌ده ...