none
DataGridViewComboBoxColumn的問題 RRS feed

  • 問題

  • 請問各位大大~

    我在dataGridView1自行定義欄位(新增DataGridViewComboBoxColumn,DataGridViewTextBoxColumn),然後用程式將資料載入,卻發生同一筆資料欄位會重複兩次的問題

     

    datagridview1會像這樣:

    ---------------------------------------------------------

    料號|名稱|儲位|數量|no|name|stone|math|

         |      |      |      | 1|XXXX|A儲位|     30|

    ---------------------------------------------------------

     

    中文是我用datagridview1編輯新增的欄位,英文欄位是我用datagridview.datasource=returnDataTable(sqlcmd)撈的資料

    而中文欄位下面不會出現資料,英文下面才有正確的資料

    但是我每個欄位的DataPropertyName都有設定成Sql欄位名稱,請問我是否有漏了什麼,導致欄位對應不起來??!!

    EX:

    //欄位.DataPropertyName = sqlcmd指令的欄位名稱

    colLfdlfmno.DataPropertyName = "Lfd_lfmno";

     


    IDS
    2011年9月1日 上午 10:00

解答

所有回覆

  • |no|name|stone|math| <--看起來在DataTable中的欄位名稱是這四個

    colLfdlfmno.DataPropertyName = "Lfd_lfmno";= <--那這個 Lfd_lfmno 是打哪兒來的 ?


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2011年9月1日 上午 10:37
    版主
  • Dear Bill~抱歉! 漏掉了那是沒有改到的!!

    正確如下:

    colno.DataPropertyName = "no";

    colname.DataPropertyName = "name";

    colstone.DataPropertyName = "stone";

    colmath.DataPropertyName = "math";


    IDS
    2011年9月2日 上午 01:30
  • Dear 阿尼~

    我之前用程式coding時有把autoGenerateColumns設成False,但是他出現叫我處理Dataerror的訊息,之後我才試著點datagridview1去編輯欄位

    點datagridview1去編輯欄位的話:

    1.那autoGenerateColumns是要在哪裡設定??

    2.或是我該在何時下autoGenerateColumns=false??  是在datagridview1.datasource=DT 之前??還是Datagridview建立Columns之前??



    IDS
    • 已編輯 kentsl 2011年9月2日 上午 01:39 更詳細的敘述問題
    2011年9月2日 上午 01:38
  • 請問Bill大大,阿尼大大~ 經過阿尼大大的指導,我已經解決重複欄位問題,但目前會出現如下問題:

    在DataGridView中發生下列例外狀況

    System.ArgumentException:dataGridViewComboBoxCell值無效

    若要取代指預設對話方塊,請處理DataError事件

     

    我想應該是如下的情況導致問題發生:

    data:(資料表)

    no|name|stone|math|

    1  |XXXX| 001|    30|

    sit:(資料表)

    no   | stone

    001 | A區

    002 | B區

     

    datagridview1 的Sql:

    select a.no,a.name,b.name,a.math from data a,sit b where a.sno=b.no

     

    DataGridViewComboBoxColumn欄位( colstone )是為了存放 sit 資料表的資料

                    colstone.DataPropertyName = "stone";
                    colstone.DisplayMember = "stone";
                    colstone.ValueMember = "no";

                    colstone.DataSource = returnDataTable("Select no ,stone from site");

    整理一下情況:

    1. 設定datagridview1欄位,新增DataGridViewComboBoxColumn 為colstone
    2. 將colstone連接dataTable,設定顯示與值
    3. 下Sql指令     datagridview1.datasource=returnDataTable(select a.no,a.name,b.name,a.math from data a,sit b where a.sno=b.no);

    請問哪裡出現問題??

     

     


    IDS
    2011年9月2日 上午 03:15
  • 抱歉,我看不出問題點耶。

     

    你參考看看MSDN的範例:

    http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcomboboxcolumn.aspx

    2011年9月2日 上午 05:57
  • 我的問題是當我DataGridViewComboBoxColumn的DataSource有連接資料時,我的datagridview1就會要我處理DataError的訊息,表示我的資料有錯誤

    我猜測是DataGridViewComboBoxColumn的連結資料與datagridview1的連結資料不對應,造成資料錯誤

     

    DataGridViewComboBoxColumn 的SQL:      Select no ,stone from site

    datagridview1 的Sql:     select a.no,a.name,b.name,a.math from data a,sit b where a.sno=b.no

     

     


    IDS
    2011年9月5日 上午 01:26
  • colstone.DataPropertyName = "stone";

    改成

    colstone.DataPropertyName = "no";


    先查MSDN文件庫
    再用GOOGLE搜尋
    才到論壇來發問

    這是論壇不是技術支援中心
    沒有人得無償解答你的問題

    在標題或文章註明很急
    不會增加網友回覆速度
    2011年9月5日 上午 02:01
  • 請問DataGridViewComboBoxColumn物件的DataSource有設定嗎?

    請確定在您的Bind datagridview1之前就要先讓Combobox先做DataBind哦!

    http://social.msdn.microsoft.com/Forums/en-US/winformsdatacontrols/thread/a6f602fd-6c6f-4285-b8ee-aa1542c7b840


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/
    2011年9月5日 上午 02:09
  • 最後我在這裡找到答案

    http://wushinetlife.blogspot.com/2010/07/datagridviewcomboboxcolumn.html

    原因就是:datasource的順序錯誤

    先:datagridviewComboboxColumn 的datasource

    後:datagridview1.source

    而我的順序相反了

    在跟各位大大請教一個問題

    Q:為何我資料已經載入了,但是我的datagridviewComboboxColumn 的資料都沒有秀出來,他不是會自動帶出資料嗎??  還是我要用程式自己去跑到正確的index???

     


    IDS
    2011年9月5日 上午 02:32