Я занимаюсь программированием на своем компьютере, и он отлично работает - программа, сама база данных, вставка в базу данных также работает нормально. Но когда публикую и устанавливаю программу на другой компьютер. Он аварийно завершает работу и не выполняет команду INSERT.

Вот мой код.

Private Sub cmdBlank_Click(sender As System.Object, e As System.EventArgs) Handles cmdBlank.Click
strTariff1 = txtPart1.Text & " " & txtPName1.Text & " " & txtQty1.Text & " " & txtU1.Text
strTariff2 = txtPart2.Text & " " & txtPName2.Text & " " & txtQty2.Text & " " & txtU2.Text
strTariff3 = txtPart3.Text & " " & txtPName3.Text & " " & txtQty3.Text & " " & txtU3.Text
strTariff4 = txtPart4.Text & " " & txtPName4.Text & " " & txtQty4.Text & " " & txtU4.Text
'strTariff5 = txtPart5.Text & " " & txtPName5.Text & " " & txtQty5.Text & " " & txtU5.Text

Call saveToDb()
frmreportax.Show()
End Sub

Private Function saveToDb()
    conn.Close()

    Dim cmdAdd, cmdCount, cmdAdd2 As New iDB2Command
    Dim sqlAdd, sqlCount, sqlAdd2 As String
    Dim curr1, curr2, curr3, curr4 As String
    Dim count As Integer

    conn.ConnectionString = str
    conn.Open()

    'Check for duplicate entry
    sqlCount = "SELECT COUNT(*) AS count FROM cewe WHERE transport=@transport AND blnum=@blnum"

    With cmdCount
        .CommandText = sqlCount
        .Connection = conn

        .Parameters.AddWithValue("@transport", frmPart1.txtTransport.Text)
        .Parameters.AddWithValue("@blnum", frmPart1.txtNo.Text)
    End With

    count = Convert.ToInt32(cmdCount.ExecuteScalar())

    If count <> 0 Then
        MsgBox("Duplicate Entry: " & frmPart1.txtTransport.Text, vbOKOnly + vbExclamation)
    Else

        sqlAdd = "INSERT INTO cewe (page) " & _
                    "VALUES (@page) "

        With cmdAdd
            .Parameters.AddWithValue("@page", Val(frmPart1.txtPage.Text))
            .CommandText = sqlAdd
            .Connection = conn
            .ExecuteNonQuery()
        End With
    end if


    cmdAdd.Dispose()
    cmdAdd2.Dispose()
    conn.Close()
end function

Подскажите пожалуйста, что я делаю не так? Когда я запускаю и устанавливаю программу на свой компьютер, она работает отлично. Но когда я запускаю / устанавливаю его на другой компьютер, он вылетает после нажатия cmdBlank.

0
shesxue28 30 Сен 2014 в 08:21

2 ответа

Лучший ответ

AS400 iSeries DB2 необходимо обновить до версии 6.xx.0800, и все исправлено!

Установщик можно найти здесь http://www-03.ibm.com/systems /power/software/i/access/windows_sp.html

Задача решена!

0
shesxue28 30 Сен 2014 в 07:15

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

Есть ли у другого компьютера доступ к базе данных, на которую вы указываете? Указывает ли соединение с базой данных на localhost? В этом случае вам нужно убедиться, что у вас есть те же учетные данные (хост, имя пользователя, пароль, порт и т. Д.), Настроенные на сервере базы данных на новом компьютере. Установлены ли драйверы базы данных на новый компьютер? В чем принципиальные различия между двумя машинами?

0
cherrysoft 30 Сен 2014 в 04:30