none
[vb2008] Parameters 的小問題 RRS feed

  • 問題

  • 在下面這段程式內 他有重複的 欄位名稱
    用Parameter 方式會說 "輸出重複的目的地"
    如果用 Command.text 的方式 
    也是會出現上面的訊息
    除了 更改欄位名稱外 有別的方式可以讓他輸入嗎?



    Dim InsStr = "Insert into table2 (代號,客戶名稱,地址,電話,電話,傳真,行動電話,上次交易日) values (?,?,?,?,?,?,?,?)"
        Dim MyParameter(7) As OleDbParameter

        MyDataAdapter_pi_fa_ko.InsertCommand = New OleDbCommand(InsStr, conn_pi_fa_ko)

        MyParameter(0) = New OleDbParameter("代號", TextBox1.Text)
        MyParameter(1) = New OleDbParameter("客戶名稱", TextBox2.Text)
        MyParameter(2) = New OleDbParameter("地址", TextBox3.Text)
        MyParameter(3) = New OleDbParameter("電話", TextBox4.Text)
        MyParameter(4) = New OleDbParameter("電話", TextBox5.Text)
        MyParameter(5) = New OleDbParameter("傳真", TextBox6.Text)
        MyParameter(6) = New OleDbParameter("行動電話", TextBox7.Text)
        MyParameter(7) = New OleDbParameter("上次交易日", TextBox8.Text)

        MyDataAdapter_pi_fa_ko.InsertCommand.Parameters.AddRange(MyParameter)
        MyDataAdapter_pi_fa_ko.InsertCommand.ExecuteNonQuery()

    2009年6月26日 上午 02:27

解答

  • FoxPro 和 dBase 那些都是特例,人家允許並不代表其他 DBMS 就允許,不然為什麼資料轉換會這麼難做(還為這個工作開發像 SSIS 這樣的工具)?
    既然要換成 Access, SQL Server, Oracle 還是其他家的 DBMS,請照該 DBMS 的規則走,不然就不要用。
    小人物一枚。
    • 已標示為解答 Lolota Lee 2009年7月3日 上午 08:21
    2009年6月26日 上午 03:44
    版主

所有回覆

  • 為什麼會有一樣的欄位名稱 ? 這樣本來就不合理吧.

    請關心自己的問題,不要問了就放空;這是對別人與自己的尊重
    2009年6月26日 上午 02:35
    版主
  • 1. 同一資料表存在兩個相同欄位名稱,請問要如何判斷你的資料要 insert 哪個欄位 ?
    2. 請改欄位名稱,小朱已有提過,請儘量不要使用中文作為欄位名稱
    .NET菜鳥自救會 http://www.dotblogs.com.tw/chou/
    2009年6月26日 上午 02:38
    版主
  • 是沒錯,不合理,
    不過這些資料我是從 舊有資料(Foxpro) 的 DBF 轉來
    經過格式 DBF > XLS > MDB
    那些欄位 在 Foxpro 就已經是設定好的,
    我也懶得修改(如果要全部改欄位 ,起碼有 2X 個 檔案要改 ,每個檔案欄位不一)
    但是這些欄位卻是在 FoxPro 的格式內卻是 「允許」的..
    所以我才會問這樣的問題.
    2009年6月26日 上午 03:26
  • 不可能吧,我用Visual Foxpro測,一樣不允許同名重複欄位。
    既然你也知道不合理,那就得改,寫程式沒有什麼懶不懶的。
    請關心自己的問題,不要問了就放空;這是對別人與自己的尊重
    2009年6月26日 上午 03:41
    版主
  • FoxPro 和 dBase 那些都是特例,人家允許並不代表其他 DBMS 就允許,不然為什麼資料轉換會這麼難做(還為這個工作開發像 SSIS 這樣的工具)?
    既然要換成 Access, SQL Server, Oracle 還是其他家的 DBMS,請照該 DBMS 的規則走,不然就不要用。
    小人物一枚。
    • 已標示為解答 Lolota Lee 2009年7月3日 上午 08:21
    2009年6月26日 上午 03:44
    版主
  • 如果foxpro 不允許,我的那些資料庫(foxpro)在輸入的時候還可以很正常的輸入
    且還歸到同一個 DBF 內還不是 外插

    不過下面的  小朱已經說明了...

    2009年6月26日 上午 10:47
  • 這就我好奇起來了,我用VFP 6.0測是的確不允許重複欄位名稱,你是用哪個版本?

    <補充>
    為了避免誤解Visual FoxPro可以用重複欄位名稱問題,特別抓了圖來說明
    請點選連結 [圖一]

    請關心自己的問題,不要問了就放空;這是對別人與自己的尊重
    2009年6月27日 上午 03:23
    版主