2013-12-21 2 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) 

Если это уровень формы объявляет, как они, кажется, вы не можете ссылаться на элементы управления (TextBox1 и TextBox2), прежде чем они инициализируются , Изменить на:

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

Затем в форме нагрузке (когда TBs существуют):

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

Да, это работает спасибо! = D – Somar

Смежные вопросы