Команда SQL UPDATE VB.NET возвращает ошибку «Аргумент не указан для параметра». - PullRequest
0 голосов
/ 12 июля 2011

Мой запрос на обновление (созданный из мастера набора данных) ничего не обновляет, и я не получаю никаких ошибок.

Я проверил свой параметр (param1), и он проходит правильно.

Когда я отлаживаю свое непосредственное окно updateta.insertquery () говорит мне это:

Аргумент не указан для параметра 'StockNum' в 'Public Overridable Function UpdateQuery (StockNum As String, Year As String, Make As String, Модель в виде строки, Цвет в виде строки, Расположение в виде строки, TiresNeeded в качестве логического значения, StockIn As Date? , SvcRONum As String, UCIStartDate As Date ?, UCIEstCompleteDate As Date ?, Восстанавливает как Boolean, CollisionRONum As String, Подробно как Date? .

почему после некоторых дат появляются вопросительные знаки ??

вот мой код vb code. Есть идеи?? Спасибо !!

    Protected Sub SubmitBTN_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles UpdateBTN.Click
        Dim updateta As New DataSet1TableAdapters.MasterTableAdapter
        updateta.UpdateQuery(StockNumTxt.Text, YearTxt.Text, MakeTxt.Text, ModelTxt.Text, ColorTxt.Text, LocationDropDownList.SelectedValue, TiresCHK.Checked, StockInDateTxt.Text, SrvcROnumTxt.Text, UCIStartDateTxt.Text, UCIEstComDateTXT.Text, RepairsCheckBX.Checked, CollisionRONumTXT.Text, DetailTXTbox.Text, OtherTxt.Text, OnLotCheckBX.Checked, OffPropertyCheckBX.Checked, SoldCheckBX.Checked, Request.QueryString("param1"))
        Response.Redirect("success.aspx")
    End Sub

    Function myCStr(ByVal test As Object) As String
        If isdbnull(test) Then
            Return ("")
        Else
            Return CStr(test)
        End If
    End Function

    Public Shared Function IsDBNull( _
 ByVal value As Object _
) As Boolean
        Return DBNull.Value.Equals(value)
    End Function

    Private Sub getData(ByVal user As String)
        'declare variables to fill
        Dim stock As String, make As String, color As String, stockin As Date, ucistart As Date, repairs As Boolean, _
            tires As Boolean, onlot As Boolean, sold As Boolean, year As Boolean, model As String, location As String, srvcRO As String, ucicompldate As Date, _
            collRO As String, other As String, offprop As Boolean, detail As Date

        Dim dt As New DataTable()
        Dim connection As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Jason\Desktop\UsedCarProductionSched\UsedCars.accdb;Persist Security Info=False;")
        connection.Open()
        Dim sqlcmd As String = "SELECT * from Master WHERE RecNum = @recnum"
        Dim FileCommand3 As New OleDb.OleDbCommand(sqlcmd, connection)
        FileCommand3.Parameters.AddWithValue("@recnum", user)
        Dim Reader3 As OleDb.OleDbDataReader = FileCommand3.ExecuteReader()
        If Reader3.Read Then

            stock = myCStr(Reader3("StockNum"))
            make = myCStr(Reader3("Make"))
            color = myCStr(Reader3("Color"))
            stockin = IIf(Reader3("stockin") Is DBNull.Value, Nothing, Reader3("stockin"))
            ucistart = IIf(Reader3("ucistartdate") Is DBNull.Value, Nothing, Reader3("ucistartdate"))
            repairs = Reader3("Repairs")
            tires = Reader3("tiresneeded")
            onlot = Reader3("onlot")
            sold = Reader3("sold")
            year = myCStr(Reader3("year"))
            model = myCStr(Reader3("model"))
            location = myCStr(Reader3("location"))
            srvcRO = myCStr(Reader3("svcROnum"))
            ucicompldate = IIf(Reader3("uciestcompletedate") Is DBNull.Value, Nothing, Reader3("uciestcompletedate"))
            collRO = myCStr(Reader3("collisionROnum"))
            other = myCStr(Reader3("other"))
            offprop = Reader3("offProperty")
            detail = IIf(Reader3("detail") Is DBNull.Value, Nothing, Reader3("detail"))

        End If
        connection.Close()

        If detail <> Nothing Then
            DetailTXTbox.Text = detail.ToString("M/dd/yyyy")
        Else : DetailTXTbox.Text = ""
        End If
        If ucicompldate <> Nothing Then
            UCIEstComDateTXT.Text = ucicompldate.ToString("MM/dd/yyyy")
        Else : UCIEstComDateTXT.Text = ""
        End If

        If stockin <> Nothing Then
            StockInDateTxt.Text = stockin.ToString("MM/dd/yyyy")
        Else : StockInDateTxt.Text = ""
        End If
        If ucistart <> Nothing Then
            UCIStartDateTxt.Text = ucistart.ToString("M/dd/yyyy")
        Else : UCIStartDateTxt.Text = ""
        End If
        StockNumTxt.Text = stock
        MakeTxt.Text = make
        ColorTxt.Text = color
        RepairsCheckBX.Checked = repairs
        TiresCHK.Checked = tires
        OnLotCheckBX.Checked = onlot
        SoldCheckBX.Checked = sold
        YearTxt.Text = year
        ModelTxt.Text = model
        If location <> Nothing Then
            LocationDropDownList.SelectedValue = location
        End If
        SrvcROnumTxt.Text = srvcRO
        CollisionRONumTXT.Text = collRO
        OtherTxt.Text = other
        OffPropertyCheckBX.Checked = offprop
    End Sub

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        getData(Request.QueryString("param1"))
    End Sub

Ответы [ 2 ]

0 голосов
/ 12 июля 2011

Доступ как # знаки вокруг даты.Вы пытались поставить знаки # вокруг значений даты?

0 голосов
/ 12 июля 2011

Что касается вопросительных знаков после даты ?, я почти уверен, что это означает, что дата является пустым полем.Допускает ли ваша таблица базы данных значение NULL для этих полей?

Когда вы ставите точку останова отладки прямо перед вашим updateta.UpdateQuery, вы уверены, что StockNumTxt.Text имеет значение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...