父子表INSERT 問題..

问题描述

本身有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..

时间: 2024-11-03 04:51:53

父子表INSERT 問題..的相关文章

ASP.NET報表的問題,大家幫忙看下~~~

问题描述 TeeChart.dll加載了這個控件,顯示圖表運行的時候爲什麽顯示的是一個紅色叉叉~~~如何使用這個控件連接數據大家幫忙看下十分感謝~~~ 解决方案 解决方案二: 没连接数据源,显示个毛啊解决方案三: 你不是連數據源都不懂吧解决方案四: 该回复于2012-04-13 14:44:50被版主删除解决方案五: 该回复于2012-04-13 14:44:23被版主删除解决方案六: 連接了就是運行的時候顯示的叉解决方案七: 该回复于2012-04-13 16:47:12被版主删除

ibatis-iBATIS 將model 中的java.util.date類型做insert時候提示無效列類型問題

问题描述 iBATIS 將model 中的java.util.date類型做insert時候提示無效列類型問題 model 的某一個字段A在為java.util.Date,對應table中的data類型 可為空 但是在做inert動作的時候,如果model中的A=null,插入就會出現無效的列類型的提示,為什麼.... 解决方案 ibatis 无效列类型 解决方案二: 当你插入时null 识别改字符类型是不是date类型,你可以写动态的sql语句如 <isNotNull prepend="

問一個問題,頁面上 在匯出報表的時候 報表沒有匯出來之前 不能做別的操作 怎麼限制?

问题描述 問一個問題,頁面上 在匯出excel報表的時候 報表沒有匯出來之前 不能做別的操作 怎麼限制? 解决方案 页面里面没有异步,不过你可以先用一个ifram制作一个loading弹出层来加载,然后等加载完以后在结束这个loading层

兩表單傳值問題

问题描述 兩表單傳值問題現在有A.B兩表單.由A的某按紐SHOW出BB會顯示資料庫的資料.選擇其中一筆按確定後B會關掉.然後A會秀出剛才選的內容B不只A可以用.C跟D都可以用.且值會值回C或D不知該怎麼做?謝謝 解决方案 解决方案二:B是一个公用选择窗口,你的目的就是将在B的选择内容传回给父窗口而已,办法有两种,一种是b窗口的确定按钮动作执行代理,代理将你的选择内容写到父窗口文档中,关闭b窗口,刷新父窗口:二是B窗口采用模式对话框,a窗口调用B窗口用js获取B窗口的返回值,写到a窗口的文档后,执

Oracle常見問題集(四)

oracle 21. 用EXISTS替換DISTINCT 當提交一個包含一對多表資訊(比如部門表和雇員表)的查詢時,避免在SELECT子句中使用DISTINCT. 一般可以考慮用EXIST替換 例如: 低效: SELECT DISTINCT DEPT_NO,DEPT_NAME FROM DEPT D,EMP E WHERE D.DEPT_NO = E.DEPT_NO 高效: SELECT DEPT_NO,DEPT_NAME FROM DEPT D WHERE EXISTS ( SELECT 'X

Oracle常見問題集(一)

oracle 一.常見問題 1. Oracle安裝完成後的初始口令 internal/oracle sys/change_on_install system/manager scott/tiger sysman/oem_temp   2. ORACLE9IAS WEB CACHE的初始默認用戶和密碼? administrator/administrator   3. oracle 8.0.5怎麽創建資料庫 用orainst.如果有motif介面,可以用orainst /m   4. oracle

Oracle常見問題集(二)

oracle 71. 內核參數的應用 shmmax 含義:這個設置並不決定究竟Oracle資料庫或者作業系統使用多少實體記憶體,只決定了最多可以使用的記憶體數目.這個設置也不影響作業系統的內核資源.   設置方法:0.5*實體記憶體 例子:Set shmsys:shminfo_shmmax=10485760 shmmin 含義:共用記憶體的最小大小. 設置方法:一般都設置成爲1. 例子:Set shmsys:shminfo_shmmin=1: shmmni 含義:系統中共用記憶體段的最大個數.

Oracle常見問題集(三)

oracle 151. 如何監控 SGA 中字典緩衝區的命中率? select parameter, gets,Getmisses , getmisses/(gets+getmisses)*100 "miss ratio", (1-(sum(getmisses)/ (sum(gets)+sum(getmisses))))*100 "Hit ratio" from v$rowcache where gets+getmisses <>0 group by p

ORACLE常用傻瓜問題1000問(之三)

oracle 88. CHR()的反函數是? ASCII() SELECT CHAR(65) FROM DUAL; SELECT ASCII('A') FROM DUAL; 89. 字符串的連接 SELECT CONCAT(COL1,COL2) FROM TABLE ; SELECT COL1||COL2 FROM TABLE ; 90. 怎么把select出来的结果导到一个文本文件中? SQL>SPOOL C:\ABCD.TXT; SQL>select * from table; SQL &