PDA

View Full Version : نیاز به راهنمایی در مورد ساخت یک دستور SQL



alih988
جمعه 12 مهر 1387, 16:54 عصر
به نام خدا

سلام و عرض ادب و خسته نباشید خدمت اساتید و دوستان گرامی.

من به مشکلی برخوردم که نیاز به راهنمایی دارم. اجازه بدید شرح بدم:

یک بانک اکسس دارم با حدود 15000 رکورد ، فرض کنیدرکوردهایی هست که محتویات یکی از فیلد خاص آن "الف" باشد.

حالا من می خوام با یک دستور sql یا یک ترفند یا ... کاری کنم که :

با حفظ رکورد های قبلی ، هرجایی که محتوای آن فید خاص "الف" بود ، آن را به "ب" تغییر دهد. یعنی اگر در بانک من 100 رکورد با محتوای "الف" موجود باشه ، 100 رکورد دیگه با مشخات همان رکورد ها اضافه بشه ، با این تفاوت که به جای "الف" ، "ب" را در آن ثبت شده باشد.

نمی دانم چه کار کنم ، چون اگر نیاز نداشتم که رکوردهای سابق حفظ بشه ، میشد از یک دستور update ساده استفاده کرد. اما الان دیگه نمیدونم....

اگر لطف کنید و راهنمایی کنید متشکر می شوم

ALI TT
جمعه 12 مهر 1387, 18:43 عصر
سلام
می تونی پس از دستور SELECT اولی ( رکوردهای با شروع "الف" ) ، و سپس Fill کردن آن به یک دیتا ست و سپس استفاده از یک حلقه FOR این کار رو کرد .

برای SELECT کردن فیلدهایی که با الف شروع میشن . البته توی کد "الف" رو بکون "ا"

"SELECT * FROM Table1 WHERE Fild1 LIKE 'الف%'

بعد Fill کن تو دیتا ست ..... بعد :

.
.
.
Fill()
.
.
.
Dim Table1 As DataTable = DataSet1.Tables(0)

For i As Integer = 0 To Table1.Rows.Count - 1

... "INSERT INTO Table1 (Fild1) VALUES ('" & "ب" & Table1.Rows(i)(0).ToString.Remove(0, 1) & "')"

اینجا هم بانک رو آپدیت کن ( ذخیره )

Next

alih988
جمعه 12 مهر 1387, 20:52 عصر
سلام ، علی جان ممنونم از راهنمایی شما.

من جهت ثبت رکورد از روش زیر استفاده می کنم :



com.comandtext = "insert into table1(f1,f2) values(v1,v2)"
com.executenonquery()


این طور که با راهنمایی شما متوجه شدم ، اول باید رکوردها رو select کنم.

خب این رو بلدم. و توی یک دیتا تیبل بریزم ، این رو هم بلدم.

بعدش با استفاده از یک حلقه for ، دونه دونه مقادیر مورد نظر رو جایگزین کنم ، و درجا هرکدوم رو هم ثبت کنم! درسته ؟

الان میرم تست کنم.
بازم ممنونم

ALI TT
جمعه 12 مهر 1387, 21:55 عصر
عدش با استفاده از یک حلقه for ، دونه دونه مقادیر مورد نظر رو جایگزین کنم ، و درجا هرکدوم رو هم ثبت کنم! درسته ؟

الان میرم تست کنم.
بازم ممنونم

دقیقا

مشکلت حل نشد بگو تا بیشتر کمکت کنم

KambizZandi
شنبه 13 مهر 1387, 00:02 صبح
اينجوري هم ميشه:

insert into tbl1(f1, f2)
select f1, 'ب'
from tbl1
where f2 = 'آ'

alih988
شنبه 13 مهر 1387, 22:42 عصر
اينجوري هم ميشه:

insert into tbl1(f1, f2)
select f1, 'ب'
from tbl1
where f2 = 'آ'



سلام ، دوست من کمی بیشتر توضیح بدید اگر ممکن است !

شما همه دستور ها را زیر هم نوشته اید و هیچ علامتی هم ندارد که بدانم تا کجا مال کدام دستور است!

شما دستور select را با insert ادغام کرده اید؟

KambizZandi
یک شنبه 14 مهر 1387, 00:33 صبح
اينا همش يک دستوره
شما براي insert بايد داده ورودي مشخص کنيد. با select ميتونيم داده(هاي) ورودي رو بهش بوخورونيم!!