【问题标题】:Object reference not set to an instance of an object - datagridview对象引用未设置为对象的实例 - datagridview
【发布时间】:2013-12-28 16:32:05
【问题描述】:

当我尝试将数据添加到应该在 xampp 上更新我的数据库的数据网格时,我在以下位置收到上述错误:myadapter.SelectCommand.CommandText = sqlquery

我认为这与空值有关,但我似乎无法修复它。

这是我的表单代码:

Imports MySql.Data
Imports MySql.Data.MySqlClient
Imports System.Drawing.Printing
Imports System
Imports System.Windows.Forms

Public Class frmClientDetails
    Dim form_type As Form
    Dim user_table As String
    Dim objconnection As New MySqlConnection("Server=localhost;database=ba-solutions;user id=root;password=")
    Dim sqlstring As String
    Dim reader As MySqlDataReader
    Dim objcommand As New MySqlCommand
    Dim myadapter As New MySqlDataAdapter
    Dim dataset As DataSet

    Private Sub frmClientDetails_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        DGVClient.Columns.Clear()
        Dim dt As New DataTable
        objdataadapter.SelectCommand = New MySqlCommand()
        objdataadapter.SelectCommand.Connection = objconnection
        objdataadapter.SelectCommand.CommandType = CommandType.Text
        objdataadapter.SelectCommand.CommandText = "SELECT * FROM Client_Details"
        objdataadapter.Fill(dt)


        rowposition = 0

        DGVClient.DataSource = dt

    End Sub
    Private Sub btnBack_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBack.Click
        frmMainMenu.Show()
        Me.Hide()
    End Sub

    Private Sub btnClearAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClearAll.Click
        txtCompanyName.Clear()
        cbxCompanyType.Items.Clear()
        txtVAT.Clear()
        txtPAYE.Clear()
        txtAddressLine.Clear()
        txtCity.Clear()
        txtPostcode.Clear()
        txtEmail.Clear()
        txtPhoneNumber.Clear()
    End Sub


    Private Sub btnSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSubmit.Click

        objconnection.Open()
        Dim sqlquery As String
        sqlquery = "Insert into Client_Details (CompanyName , CompanyType , VATRegistrationNumber , PAYEandTaxReference , AddressLine1 , City , Postcode , Email , PhoneNumber) Values ('" &
         txtCompanyName.Text & "','" & cbxCompanyType.Text & "' , '" & txtVAT.Text & "','" & txtPAYE.Text & "' , '" & txtAddressLine.Text & "' , '" & txtCity.Text & "' , '" & txtPostcode.Text & "' , '" &
         txtEmail.Text & "' , '" & txtPhoneNumber.Text & "')"
        myadapter.SelectCommand.CommandText = sqlquery
        myadapter.SelectCommand.CommandType = CommandType.Text

        Try
            dataset = New DataSet
            myadapter.Fill(dataset, "client_details")
            MsgBox("info added")
        Catch
            MsgBox("not added")
        End Try
    End Sub
End Class

【问题讨论】:

    标签: mysql vb.net datagridview


    【解决方案1】:

    Your question befor 可能重复

    您也没有设置与适配器的连接:

     Private Sub btnSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
    
        Dim sqlquery As String
        sqlquery = "Insert into Client_Details (CompanyName , CompanyType , VATRegistrationNumber , PAYEandTaxReference , AddressLine1 , City , Postcode , Email , PhoneNumber) Values ('" &
         txtCompanyName.Text & "','" & cbxCompanyType.Text & "' , '" & txtVAT.Text & "','" & txtPAYE.Text & "' , '" & txtAddressLine.Text & "' , '" & txtCity.Text & "' , '" & txtPostcode.Text & "' , '" &
         txtEmail.Text & "' , '" & txtPhoneNumber.Text & "')"
    
        Try
             If objconnection.State = ConnectionState.Open Then
                objconnection.Close()
            End If
            objconnection.Open()
    
            Dim objcommand As New MySqlCommand(sqlquery,objconnection)     
            objcommand.ExecuteNonQuery()
            MsgBox("info added")
        Catch
            MsgBox("not added")
        End Try
    End Sub
    

    结束类

    【讨论】:

    • 我在myadapter.InsertCommand.Connection = objconnection得到同样的错误
    • 不要使用 myadapter.InsertCommand.Connection 使用 myadapter.Connection
    • ok sqlquery 是一个插入命令,它不返回任何值你想如何用它填充数据集????????
    • 它修复了之前的错误,但现在在 objconnection.open() 我得到连接已经打开??
    • 我这样做了,但是有两个问题:即使我将数据输入到数据网格中,它也会给 em objconnection 错误,但是当我重新启动时,我的新数据在那里?另外,当我删除它时,我收到此错误:连接必须有效且打开。在objcommand.executenonquery()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多