2013-12-21 82 views
0

我在一個VB.NET項目上工作,我有一個按鈕,我想要插入數據到我的表。因此,這是這個按鈕的代碼:插入數據到SQL Server Compact數據庫

Public Class Form21 
    Dim connexion As New SqlCeConnection("Data Source=D:\Cours\Projets\Stge\WindowsApplication1\WindowsApplication1\datababse.sdf") 
    Dim cmd As New SqlCeCommand 
    Dim libelle As String = TextBox1.Text 
    Dim prix As Double = Double.Parse(TextBox2.Text) 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     cmd.Connection = connexion 

     cmd.CommandText = "INSERT into Produit_fini values(@libelle,@prix)" 
     cmd.Parameters.AddWithValue("@libelle", libelle) 
     cmd.Parameters.AddWithValue("@prix", prix) 
     connexion.Open() 
     cmd.ExecuteNonQuery() 
     connexion.Close() 

    End Sub 
End Class 

現在的問題是,當我想打開該按鈕想通窗口,我在這條線得到一個錯誤:

Form21.ShowDialog() 

錯誤表示我無法打開窗口。我的按鈕代碼中是否有錯誤?請幫忙。

謝謝

以下是錯誤細節:

L'exception System.InvalidOperationException n'a pas été gérée
Message=Une erreur s'est produite lors de la création du formulaire. Pour plus d'informations, consultez Exception.InnerException. L'erreur est : La référence d'objet n'est pas définie à une instance d'un objet.
Source=database
StackTrace:
à database.My.MyProject.MyForms.Create_Instance_[T](T Instance) dans 17d14f5c-a337-4978-8281-53493378c1071.vb:ligne 190
à database.My.MyProject.MyForms.get_Form21()
à database.Form1.إضافةمنتوججديدToolStripMenuItem_Click(Object sender, EventArgs e) dans D:\Cours\Projets\ferran\WindowsApplication1\WindowsApplication1\Form1.vb:ligne 130
à System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
à System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
à System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
à System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
à System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
à System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
à System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
à System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
à System.Windows.Forms.Control.WndProc(Message& m)
à System.Windows.Forms.ScrollableControl.WndProc(Message& m)
à System.Windows.Forms.ToolStrip.WndProc(Message& m)
à System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
à System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
à System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
à System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
à System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
à System.Windows.Forms.Application.Run(ApplicationContext context)
à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
à Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
à database.My.MyApplication.Main(String[] Args) dans 17d14f5c-a337-4978-8281-53493378c1071.vb:ligne 81
à System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
à System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
à System.Threading.ThreadHelper.ThreadStart()

InnerException: System.NullReferenceException
Message=La référence d'objet n'est pas définie à une instance d'un objet.
Source=database
StackTrace:
à database.Form21..ctor() dans D:\Cours\Projets\Stge\WindowsApplication1\WindowsApplication1\Form21.vb:ligne 7

+1

您的實際問題似乎並不有什麼做你的文章的標題。您在插入數據或使用對話框時遇到問題嗎?而且您發佈的代碼與您所詢問的錯誤無關。 – Tony

+0

窗口無法顯示,因爲我的按鈕代碼有錯誤。在放置代碼之前,窗口顯示得非常好 – Somar

+0

您可以逐句通過代碼並告訴我們錯誤發生的位置以及錯誤消息是什麼? – DOK

回答

0
Public Class Form21 

    Dim connexion As New SqlCeConnection("Data Source...") 
    Dim cmd As New SqlCeCommand 
    Dim libelle As String = TextBox1.Text 
    Dim prix As Double = Double.Parse(TextBox2.Text) 

如果這些是因爲他們似乎是你不能引用控件(TextBox1TextBox2)在初始化之前表單級別聲明。更改爲:

Dim libelle As String = "" 
    Dim prix As Double = 

然後在窗體加載時(TB的存在):

libelle = TextBox1.Text 
    prix = Double.Parse(TextBox2.Text) 
+0

是的,它的作品謝謝你! = d – Somar

相關問題