ต้องการให้เวลาบันทึก ให้บันทึก id ในฟิว ProfileID โดยอัตโนมัตอ่คะ แล้วก็ฟิว PID ดึงรหัสหรือ PK จากต
ฐานข้อมูล sql server ค่ะ
ตารางที่เกี่ยวข้องมี สอง ตารางค่ะ คือตาราง Profile และ history ตาราง history มีฟิว PID เป็น pk
แล้วทีนี้ตาราง Profile ฟิวดังนี้ คือ ProfileID,PrisonID,Blame,Tall,Weight,DepartID,PartID,AreaID,PID,rdoNewMove
ProfileID เป็น pk และต้องการให้เวลาบันทึกให้มีรหัสในฟิวนี้อัตโนมัติอ่าค่ะ และฟิว PID ก็ให้มีรหัสในฟิวนี้อัตโนมัติเหมือนกันค่ะ แต่ฟิว PID ให้ดึงมาจาก PK ตาราง history ที่บันทึกครั้งล่าสุดอ่ะคะ
ส่วนที่บอกว่า ProfileID กำหนดเป็น auto increament กำหนดไปแล้ว แต่เวลา codding ต้องเขียนแบบนี้รึป่าวคะ คือ insert into (PrisonID,Blame,Tall,Weight,DepartID,PartID,AreaID,PID,rdoNewMove) คือตัด ProfileID ออกไปเลยหรอคะ
ส่วน PID ที่บอกว่า ให้ select max(PK) from history แล้วเอามา insert ใน PID ของ Profile codding ต้องเป็นแบบใหนคะ หนูลองทำแบบนี้แล้วมันไม่ได้อ่าค่ะ มันฟ้องว่า conversion string "select max(pk) from history" to type'integer' is not valid //หนูไม่แน่ใจว่า max(pk) ต้องใส่เป็น max(PID) หรือ max(pk) ]ลองทั้งสองอย่างแล้ว ฟ้องเหมือนกันค่ะ ช่วยทีนะคะ
Dim sqlProfile As String = ""
'SELECT max(fieldname) from Tablename
Dim sqlselect As String = "SELECT MAX(PK) FROM HISTORY"
sqlProfile = "INSERT INTO PROFILES (PrisonID,Blame,Tall,Weight,DepartID,PartID,AreaID,PID, rdoNewMove)"
sqlProfile &= " VALUES ('" & CStr(ComboPrison_t2.SelectedValue) & "', "
'sqlProfile &= "'" & CStr(ComboPrison_t2.SelectedValue) & "',"
sqlProfile &= "'" & (txtBlame_t2.Text.Trim) & "',"
sqlProfile &= "'" & (txtTall_t2.Text.Trim) & "',"
sqlProfile &= "'" & (txtWeight_t2.Text.Trim) & "',"
sqlProfile &= "'" & CStr(ComboDepartment_t2.SelectedValue) & "',"
sqlProfile &= "'" & CStr(ComboPart_t2.SelectedValue) & "',"
sqlProfile &= "'" & CStr(ComboArea_t2.SelectedValue) & "',"
sqlProfile &= "'" & CInt(sqlselect) & "',"
If rdoNew_t2.Checked = True Then
sqlProfile &= "'รับตัวใหม่')"
ElseIf rdoMove_t2.Checked = True Then
sqlProfile &= "'ย้ายมาจากเรือนจำอื่น')"
End IfTag : - - - -
Date :
2010-06-12 22:22:08
By :
jdai
View :
1152
Reply :
2
ผมแนะนำนะครับ
แก้ตรง select PID แล้วเก็บไว้ในตัวแปรหรือ dataset ค่อยเอามา
insert ใน PROFILES ครับ
ประมาณนี้ครับ
Code (VB.NET)
dim sb as new stringbulder
dim da as sqldataadapter
dim ds as new dataset
dim datatable dt as new datatable
dim sql as string = ""
sb.remove(0,sb.lenght)
sb.append("select max(pid) as pid from history")
sql = sb.tostring()
da = new sqldataadapter(sql,con)
da.fill(ds,"dthistory")
dt = ds.table("dthistory")
'////////
sb.remove(0,sb.lenght)
sb.append("insert into profiles(f_a,f_b,pid,f_c) ")
sb.append(" values("'" && "',"")
sb.append(""' & strA & "',")
sb.append(""' & strB & "',")
sb.append(""' & dt.row(0).item("pid") & "',")
sb.append(""' & strC & "')")
sql = sb.tostring()
com.commandtype = command.text
com.commandtext = sql
com.connection = con
com.exce...
sele
ประมาณนี้ครับไม่แน่ใจว่าตรงประเด็นหรือเปล่า
Date :
2010-06-15 12:01:17
By :
tee
ขอโทษครับ พิมพ์ผิดครับ แก้ตามนี้
Code (VB.NET)
sb.remove(0,sb.lenght)
sb.append("insert into profiles(f_a,f_b,pid,f_c) ")
sb.append(" values('" & strA & "',"")
sb.append("'" & strB & "',")
sb.append("'" & dt.row(0).item("pid") & "',")
sb.append("'" & strC & "')")
Date :
2010-06-15 12:54:14
By :
tee
Load balance : Server 02