问题描述
本身有2個表,父表.(ORDER),子表(ORDERITEM)己放在DATASET裡,父表的欄位(ID)跟子表的(HDRID)本身是關係欄位..在程序裡都已設定RELATION,如下,PrivateSubSetRelation()TryDimPKey(1)AsDataColumnPKey(0)=dsTest.Tables(0).Columns("ID")dsTest.Tables(0).Columns("ID").AutoIncrement=TruedsTest.Tables(0).Columns("ID").AutoIncrementSeed=-1dsTest.Tables(0).Columns("ID").AutoIncrementStep=-1dsTest.Tables(0).PrimaryKey=PKeyDimRELAsDataRelation=NewDataRelation("REL1",dsTest.Tables(0).Columns("ID"),dsTest.Tables(1).Columns("HdrID"))dsTest.Relations.Add(REL)CatchexAsExceptionMsgBox(ex.Message,MsgBoxStyle.OkOnly,ex.Source.ToString)EndTryEndSub
但在按SAVE時,亦加了setParentRow()Me.TextBox1.ReadOnly=TrueMe.TextBox2.ReadOnly=TruemDrHdr.Item("HDRTEXT")=Me.TextBox1.TextdsTest.Tables(0).Rows.Add(mDrHdr)mDrDtl.Item("DTLTEXT")=Me.TextBox2.TextmDrDtl.SetParentRow(mDrHdr)dsTest.Tables(1).Rows.Add(mDrDtl)
在這裡當父表ADDROW后欄位"ID"的值變動,子表的欄位"HDRID"亦會跟隨更新.但當我把這個DATASET拿去更新到DB時,父表的ID值由SQL派一個AUTOKEY的,但父表得到這個新ID后,子表的HDRID並沒有更新??各位大大,這是什麼問題,可否指教一下..萬分感激..
解决方案
解决方案二:
解決了,原來只欠一句SQLSTATEMENT;WithSqlStrBdr.Append("INSERTINTOTEST01(HDRTEXT)VALUES(@HDRTEXT);").Append("SELECT*FROMTEST01WHEREID=SCOPE_IDENTITY();")EndWith
加多一句SELECT...就可以了..
解决方案三:
是在父表INSERT到DATABASE時的SQL..