PDA

View Full Version : insert در دیتابیس با حلقه for



zibaaa
چهارشنبه 07 مهر 1389, 21:30 عصر
میشه خواهش کنم نمونه کدی که مثلا 100 تا رکورد رو با یه حلقه for از یک جدول دیتابیس بخونه و رکورد به رکورد توی جدول دیگه ای insert کنه رو واسم بذارین؟
ممنون

mmd2009
چهارشنبه 07 مهر 1389, 21:59 عصر
با سلام

در چنین مواقعی نیازی به حلقه نیست کافیه query رو درست بنویسیم

یک مثال براتون زدم امیدوارم مفید باشه



Dim con As OleDbConnection
Dim cmd As OleDbCommand
Dim constring As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Database1.mdb"
Dim query As String = "insert into tb2 select * from tb1 "

con = New OleDbConnection(constring)
cmd = New OleDbCommand(query, con)

con.Open()
cmd.ExecuteNonQuery()
con.Close()
MsgBox("انتقال داده شد")

zibaaa
چهارشنبه 07 مهر 1389, 22:04 عصر
ممنونم. اگه بخوام فقط مثلا ستون kind از tb1 رو به ستون همنامی در tb2
insert کنم (رکورد به رکورد) باید query رو به چه صورت بنویسم؟

mmd2009
چهارشنبه 07 مهر 1389, 23:13 عصر
Dim con As OleDbConnection
Dim cmd As OleDbCommand
Dim constring As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Database1.mdb"
Dim query As String = "insert into tb2 select family from tb1 "

con = New OleDbConnection(constring)
cmd = New OleDbCommand(query, con)

con.Open()
cmd.ExecuteNonQuery()
con.Close()
MsgBox("انتقال داده شد")

ali_najari
پنج شنبه 08 مهر 1389, 09:51 صبح
اينطوري ميتونيد استفاده كنيد




DB.doConnect("")

For i As Integer = 0 To DGV.Rows.Count - 1
Application.DoEvents()
DB.doCommand("InSert Into TBL(Field1,Field2,Field3) Values('" & DGV.Rows(i).Cells(0).value & _
"'," & DGV.Rows(i).Cells(1).value & ",'" & DGV.Rows(i).Cells(3).value & "')")

Next

DB.Disconnect()

zibaaa
شنبه 10 مهر 1389, 09:15 صبح
Dim con As OleDbConnection
Dim cmd As OleDbCommand
Dim constring As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Database1.mdb"
Dim query As String = "insert into tb2 select family from tb1 "

con = New OleDbConnection(constring)
cmd = New OleDbCommand(query, con)

con.Open()
cmd.ExecuteNonQuery()
con.Close()
MsgBox("انتقال داده شد")



اگه tb2 غیر از ستون family ستون دیگه ای هم داشته باشه خطا میده، در اون صورت باید query رو به چه صورت نوشت؟

ali_najari
شنبه 10 مهر 1389, 10:38 صبح
اگه tb2 غیر از ستون family ستون دیگه ای هم داشته باشه خطا میده، در اون صورت باید query رو به چه صورت نوشت؟

احتمالا اگه تعداد فيلدهاي معرفي شده برابر باشند مشكلي پيش نمياد

zibaaa
شنبه 10 مهر 1389, 12:36 عصر
تعداد فیلدهای tb1 و tb2 برابر نیستند! یعنی در این وضعیت راهی وجود نداره که این query جواب بده؟

Rezahak
شنبه 10 مهر 1389, 13:42 عصر
فيلد هايي كه در tbl2 وجود ندارد را با يك مقدار پيش فرض پر كن

zibaaa
شنبه 10 مهر 1389, 16:17 عصر
فيلد هايي كه در tbl2 وجود ندارد را با يك مقدار پيش فرض پر كن

بله، درست شد. دست همه دوستان درد نکنه.

حالا یک کمک دیگه هم میخوام! فرض کنین یک جدولی 10 تا ستون و 4000 سطر داره. من یه ستون جدید بهش اضافه کردم. حالا میخوام مقادیر 1 تا 4000 به ترتیب یه این ستون جدید اضافه شه. ممنون میشم از کمکتون

Rezahak
یک شنبه 11 مهر 1389, 09:35 صبح
نوع فيلد مورد نظر را int و خاصيت identity آنرا true كن

zibaaa
یک شنبه 11 مهر 1389, 09:57 صبح
نوع فيلد مورد نظر را int و خاصيت identity آنرا true كن
یه ستون دیگه که identityاش true باشه توی این جدول هست و در حقیقت من نمیخوام که این ستون identity باشه. مقادیر 1 تا 4000 مثال بود. شما فرض کنین من میخوام 4000 تا 8000 رو بریزم

Rezahak
یک شنبه 11 مهر 1389, 17:09 عصر
identity seed رو 4000 قرار بده