none
程式與資料表配合&KeyUp問題!! RRS feed

  • 問題

  • 各位大大好:

    小弟今天有個問題是這樣的,我正在試寫一個專門紀錄單號的程式,

    不過我遇到一個資料表與程式配合的問題,是這樣的,

    當我查到一筆資料,上面的貨物數量為300,意思就是有300張托運單,

    每張單子的數字皆不一樣,要寫進資料表內:

     

    問題就來了:

    (1)是不是該建300個資料欄位,我想各位大大有沒有比較好的紀錄方法?

    (2)另一個是我用來記錄託運單號的maskedTextBox(遮罩樣式:00-0000-0000)

     

    假設maskedTextBox共有10個,我該如何在第1個填完數字(用條碼機刷進去)後(EX:11-2222-3333)

    怎麼讓它自動跳到第2個,目前我只是知道用以下方法:

    private void maskedTextBox1_KeyUp(object sender, KeyEventArgs e)

    {

    if (e.KeyCode ==Keys.Enter )

    {

     maskedTextBox2.Focus();  

    }

    }

     

    還請各位大大不吝指導!!

    使用工具:VS2005,DB:MSSQL2005,WinFrm(C#)

    資料表的內容:name、tel、address、no(數量)、senddate(送貨日)、nomber(單號)

    2007年3月30日 下午 05:25

解答

  • (1).應是用一對多吧,萬一有一筆數量超出300的話是不是就會有問題了

    (2).若在TextChanged裏拿字串長度,符合時就自動離開的方法呢

    2007年3月31日 上午 12:09

所有回覆

  • (1).應是用一對多吧,萬一有一筆數量超出300的話是不是就會有問題了

    (2).若在TextChanged裏拿字串長度,符合時就自動離開的方法呢

    2007年3月31日 上午 12:09
  • 回ivyhuang大大:

    第2個問題我已自行解決了!!如下:

    private void maskedTextBox1_KeyUp(object sender, KeyEventArgs e)
            {
                if (maskedTextBox1.MaskCompleted == true)
                {
                    maskedTextBox2.Focus();
                }

            }

     

    那有關於第1個問題,我還是有點不太懂(一對多?)!!是否可以舉例說明一下!!

     

    順帶一提,我整個流程是這樣的:

    1.Frm1查詢所需資料:name、tel、address、no(數量)、senddate(送貨日)、nomber(單號)   <=資料表名稱:trade

    2.將資料show在dataGridView1上,並觸發Cilck,將所點的資料行填入Frm2{ name、tel、address、no(數量)、senddate(送貨日) }

    3.在Frm2上開始輸入單號

    4.按下Btn1將資料name、tel、address、no(數量)、senddate(送貨日)、nomber(單號)與所輸入的單號儲存在資料表(billview)

    2007年3月31日 上午 07:21
  • 不好意思,因不太確定你的意思,想請問:

     1. 在Trade資料表裏,你有一張 trade.nomber = 'M001'的單子查詢show在Datagridview1上

     2. 查詢後你會選擇要的資料行把相關資料{ name、tel、address、no(數量)、senddate(送貨日) }帶到 Frm2

     3. 這張trade.nomber ='M001'會有很多不同的細項單號,而你是在Frm2裏把這些細項單號輸入並存到billview嗎

    2007年3月31日 上午 07:47
  • 回ivyhuang大大:

    我說清楚一點好了,是這樣的:

     

    1.我在Frm1上填入條件,去查詢資料庫內的Trade表,將裡面的name、tel、address、no(數量)、senddate(送貨日)..等相關資料show在Frm1的dataGridView1上

    2.dataGridView1的click事件觸發後,將點選的資料行資料name、tel、address、no(數量)、senddate(送貨日)..等相關資料,傳入Frm2的畫面

    3.Frm2上面有與這些資料相對應的textBox(ex:name會自動傳到textBox上),與專門在填入單號的maskedTextBox(Frm預設20個),

    4.假設數量=10,我就在maskedTextBox1~~maskedTextBox10依序填入數字

    5.billview表內欄位,以建立足夠儲存textBox與maskedTextBox的資料欄

    5.當填入完成後,按下確認btn,將textBox所擷取的資料,再加上maskedTextBox1~~maskedTextBox10的資料,一起寫進資料表billview

     

    問題點:

    1.當數量大於20,billview表就沒有欄位儲存其它單號,所以不知道有何種方法來解決問題?

    2.由於數量可能到達300,所以就不知道該如何儲存!!(預設欄位設到300欄,我想各位大大應該不會這麼猛,對資料維護可能也會出現負擔)

    3.所以還請各位大大不吝指導!!謝謝!!

     

    2007年3月31日 上午 10:18
  • 因你從Trade查出的資料,有可能一筆會對到多筆的MaxkedTextBox單號,所以是不是把Trade的PK放到billview,當成billview的FK?!

     

    若有不對的地方再請大家更正,謝謝!

    2007年3月31日 下午 04:13
  • 抱歉!!可不可以解釋一下PK跟FK?不太熟悉簡寫!!

    或者可以說明一下儲存方式嗎?

     

    附帶一提!!查出來的資料會跟單號一起寫進billview內,

    目前可能解決的方法是建立300個欄位....,不過這應該不是一個程式設計人員該做的方法...

    所以還請各位大大不吝指導!!   謝謝!!

     

    2007年3月31日 下午 05:57
  • PK是主鍵,FK是外來鍵,你可能需要先補充一下SQL的資訊哦!
    2007年4月1日 下午 02:34
  • 回ivyhuang大大:

    說中文我就懂了!!

    只不過我現在卡在不知道用何種形式去寫入!!所以在苦惱!!

    希望各位大大可以提供一下觀念就好!!

    2007年4月1日 下午 04:31
  • 回ivyhuang大大

    問題小弟以自行解決!!多謝你這幾天的不吝指導!!  謝謝!!!

    2007年4月1日 下午 08:06