none
資料存入mysql發生錯誤 RRS feed

  • 問題

  • 各位大大好,我用vb.net2008撰寫連接到mysql資料庫並新增儲存資料的程式,但是有底線的部分在輸入完資料執行時發生問題,下面顯示訊息為

    類型 'MySql.Data.MySqlClient.MySqlException' 的未處理例外狀況發生於 MySql.Data.dll

    其他資訊: Field 'STname' doesn't have a default value

    以下是完整程式,劃抵線部分為發生錯誤的地方,拜託各位高手給我一點建議>"<,感激不盡!!!!!


    Option Strict On
    Imports MySql.Data.MySqlClient
    Public Class Form1
        Inherits System.Windows.Forms.Form
        Dim mysqlconn As MySqlConnection
        Dim test, test1 As MySqlCommand
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            mysqlconn = New MySqlConnection("Data Source=localhost;Initial Catalog=newtest;" + "User ID=root;PWD=b9601035")
            mysqlconn.Open()

            test1 = New MySqlCommand("INSERT INTO student(STnumber)VALUES(?STnumber)", mysqlconn)
            test1.Parameters.Add("?STnumber", MySqlDbType.VarChar)
            test1.Prepare()

            test = New MySqlCommand("INSERT INTO student(STname)VALUES(?STname)", mysqlconn)
            test.Parameters.Add("?STname", MySqlDbType.VarChar)
            test.Prepare()
        End Sub

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim num As Integer
            Dim name As String

            TextBox1.Text = Trim(TextBox1.Text)
            TextBox2.Text = Trim(TextBox2.Text)
            If TextBox1.Text = " " Or TextBox2.Text = " " Then
                MsgBox("Please enter the entire data!")
                Exit Sub

            End If

            test1.Parameters("?STnumber").Value = TextBox1.Text
            test1.ExecuteNonQuery()

            test.Parameters("?STname").Value = TextBox2.Text
            test.ExecuteNonQuery()

            MsgBox("Your data has been saved!")
            TextBox1.Text = " "
            TextBox2.Text = " "
        End Sub
    End Class

    2010年8月23日 上午 06:36

解答

  • 找個 MySQL 表格編輯工具,把該欄位預設值設為 Null ,並設定為允許 Null 。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    • 已標示為解答 amati223 2010年8月24日 上午 03:49
    2010年8月23日 下午 02:17

所有回覆

  •  

    If Trim(TextBox1.Text) = "" Or Trim(TextBox2.Text) = "" Then
                MsgBox("Please enter the entire data!")
                Exit Sub
    
            End If
    

    有輸入值嗎...

    2010年8月23日 上午 06:44
  • 你的 STname 沒給值又沒有預設值,而且你資料庫欄位設定 STname 不允許 NULL,才出現這個問題。
    以下為簽名檔,請勿對號入座:
    初學不是問題,但用不正確的態度來問問題,那就是很大的問題。
    請不要藉新手之名行小白之實,否則只會讓更多無辜的新手得不到幫助而已。
    如果不知道什麼是小白,請參閱:何謂小白
    2010年8月23日 上午 06:58
    版主
  • 不好意思~我想再請問清楚一點,因為我原本的想法是利用VB介面輸入資料,由使用者在TEXTBOX中輸入,資料再存取到MYSQL的指定資料庫中,由兩位大大的說法是我應該先給STname和STnumber預設一個值的意思嗎?還是說我的程式沒有抓到textbox的輸入資料呢??  這部分還有些不清楚,還麻煩兩位解釋一下~很謝謝兩位~~>""<

    2010年8月23日 上午 07:16
  • 找個 MySQL 表格編輯工具,把該欄位預設值設為 Null ,並設定為允許 Null 。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    • 已標示為解答 amati223 2010年8月24日 上午 03:49
    2010年8月23日 下午 02:17
  • 謝謝樓上大大的提示,我的資料可以輸入到資料庫中了!!!!:D非常感謝大家,只是資料的排列出了問題,我想可能是我的指令出了點小問題,不過總算輸入進去了:D十分感謝!!!!

    2010年8月24日 上午 03:47
  • 我只是翻譯小朱的話
    論壇是網友平等互助 保證解答請至 微軟技術支援服務
    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。
    2010年8月24日 下午 02:32