none
想請教有關於Sql Insert Into 語法.. RRS feed

  • 問題

  •  

    請教各位前輩

    小弟使用ADO.NET

    先判斷回傳值是否正確....如下

    Code Snippet

    Dim cn as sqlconnection = new sqlconnection("....")

    Dim cmd as sqlcommand = new sqlcommand("SELECT ...." , cn)

    cn.open()

    dim rs as sqldataReader

    rs = cmd.executeReader

    if rs.read() then

    cmd.command.text = "INSERT INTO [xxx] ([a],[b],[c]) SELECT ([a_],[b_],[c_]) FROM [yyy]"

    cmd.executeNonQuery

    ....

     

     

     

    這裡 [ c ] 欄位資料..小弟想做出先讀取[c_]欄位資料,並且先與另一個資料表[zzz]先做SELECT * FROM [zzz] WHERE [c_1] = [c_],再把回傳值傳給[ c ]欄位

    一直寫不出來....

    不知各位前輩可否指導小弟...

     

    感恩~

    2008年3月6日 上午 02:59

所有回覆

  • 這樣的話要用兩個command來作,一個是executeReader用的,一個是InsertInto用的;如果資料量不大的話也可以用DateSet,把"zzz"的資料倒進DataSet,之後搜尋就找DataSet裡面的東西,Insertinto再用sqlcommand。

    2008年3月6日 上午 05:09
  •  

    謝謝bauann前輩指導

    小弟等等試試^^

    2008年3月6日 上午 06:48
  • 你到底有沒有要傳回值做判斷?

    如果一定要傳回做判斷,那會有怎麼問題?

    就是傳回後做判斷,然後做寫回動做.

     

    另一種是判斷跟插入一起做,那就寫Stored Producure 將參數帶過去,然後將插入結果(如成功,失敗)帶回就可以了.

    2008年3月6日 上午 09:34
  • 前輩

    小弟有要傳回值做判斷^^"

    目前遇到問題是  小弟在寫入時~需要讀取兩~三個資料表~同時寫入..新資料表中..

     

    努力中~~~~

     

    2008年3月10日 上午 02:54
  • 你這樣會有怎麼問題?

    你還是要將資料庫的資料讀出,判斷,然後寫入,我想沒有其它的捷徑了!

    你是不是SQL Command 不會組,雖然這樣寫會有一些問題,當以目前來看你目前也只能用這種方式,當然你去查一下怎麼傳參數的用法會比較好.

    在這裡SQL Command 的組法就跟一般字串組法一樣 string.Format"Insert ColumnOne,ColumnTwo,{0},{1} xxxxx",varA,VarB);

     

    2008年3月10日 上午 03:06
  • 寫個FUNCTION回傳

    FCUNCTION GETC1(C AS STRING)

    DIM CN AS SQLCONNECTION = NEW SQLCONNECTION(.............) 

    CN.OPEN

    DIM SQL AS STRING = "SELECT C_1 FROM [zzz] WHERE [c_1] = '" & C& "'"

    DIM CMD AS SQLCOMMAND = NEW SQLCOMMAND(SQL,CN)

    DIM CC AS STRING =CMD.ExecuteScalar()

    CN.CLOSE

    CN.DISPOSE

    CMD.DISPOSE

    RETURN CC
    2008年3月10日 上午 03:15
  •  

    前輩

    你說的對..

    sqlcommand真的蠻苦惱...

    單純的讀取判斷寫入我想我還可以..

    現在努力中~~~~~~

    謝謝前輩指點

    2008年3月10日 上午 06:01
  • 謝謝前輩指導^^

    2008年3月10日 上午 06:05