ต้องการ Insert 2 ตารางพร้อมกัน คือ ตาราง car มีPark_id เป็น PK และตาราง Park มี Park_id เป็น PK แต่ตารางPark นั้นต้อง Update คอลลัมน์ status ดัวย พอเวลากดปุ่มบันทึกต้องการให้ลงทั้ง 2 ตารางพร้อมกันค่ะ พอจะมีวิธีไหมค่ะ
Tag : .NET, VB.NET
ประวัติการแก้ไข 2012-01-07 16:14:05
Date :
2012-01-07 16:02:34
By :
Radweek
View :
4845
Reply :
4
No. 1
Guest
Code (VB.NET)
Sql = "insert into Park(Park_id,status) select (select isnull(max(Park_id),0)+1 from Park),'value'" & vbCrLf & _
"insert into car(carid,Park_id) select (select isnull(max(carid),0)+1 from car),(select max(Park_id) from Park)"
Try
cmd = New OleDbCommand(Sql, Conn)
cmd.ExecuteNonQuery()
Catch ex As Exception
End Try
With ql
If .State = ConnectionState.Open Then .Close()
.ConnectionString = PttConn
.Open()
End With
Dim s As String = ""
If FlagAction = "ADD" Then
s = "insert into Car (Num_car,Park_id,Card_id,City,Time_in,date,Building,Floor)"
s &= "values (@Num_car,@Park_id,@Card_id,@City,@Time_in,@date,@Building,@Floor)"
s = " insert into Park (Park_id,status)"
s &= " values(@Park_id,@status)"
Else
s = "Update Park "
s &= "set status = '0'"
s &= " Where Park_id ='" & TxtParkid.Text & "' "
End If
With mk
.CommandType = CommandType.Text
.CommandText = s
.Connection = ql
.Parameters.Clear()
.Parameters.Add("@Num_car", SqlDbType.NVarChar, 7).Value = Txtcar.Text
.Parameters.Add("@Park_id", SqlDbType.NVarChar, 5).Value = TxtParkid.Text
.Parameters.Add("@Card_id", SqlDbType.NVarChar, 5).Value = Txtid.Text
.Parameters.Add("@City", SqlDbType.NVarChar, 50).Value = Txtcity.Text
.Parameters.Add("@Time_in", SqlDbType.DateTime).Value = Txtin.Text
.Parameters.Add("@date", SqlDbType.DateTime).Value = Datdate.Text
.Parameters.Add("@Building", SqlDbType.NVarChar, 1).Value = txtbut.Text
.Parameters.Add("@Floor", SqlDbType.NVarChar, 1).Value = Txtfloo.Text
.ExecuteNonQuery() 'ใช้กับ Insert update delete
End With
MessageBox.Show("บันทึกข้อมูลเรียบร้อยแล้วค่ะ")
-- อยากทราบว่า ทำไมบันทึกแล้วไม่ลงตาราง car แต่ update ลง ตาราง Park ได้ค่ะ ช่วยดูให้หน่อยนะค่ะ คืออยากให้บันทึกลง 2 ตารางค่ะ
ก็ตอน ADD ดูที่ตัวแปร s ดีๆ ครับ รอง debug ดู ว่าก่อนตอนส่งคำสั่งใน s ไปประมวลผลมันมีค่าเป็นอะไร (เรื่องการต่อ String)
Code (VB.NET)
s = "insert into Car (Num_car,Park_id,Card_id,City,Time_in,date,Building,Floor)"
s &= "values (@Num_car,@Park_id,@Card_id,@City,@Time_in,@date,@Building,@Floor)"
s = " insert into Park (Park_id,status)"
s &= " values(@Park_id,@status)"