Как обновить фото и данные? - PullRequest
0 голосов
/ 11 декабря 2011

Я только что заметил, что даже если фотография существует и я обновляю только данные, фотография автоматически удаляется.В частности, пожалуйста, я хочу код, который можно использовать для обновления данных или фотографии и / или обоих.

qry = "update StudentDetails.Students set StudentName=@StudentName,Day=@Day,Month=@Month,Year=@Year,Age=@Age,DateAdmit=@DateAdmit,Gender=@Gender,GuardianName=@GuardianName,Phone=@Phone,Email=@Email,Address=@Address,City=@City,Region=@Region,Photo = CASE WHEN @Photo IS NULL THEN Photo ELSE @Photo END where StudentId='" & txtStudentID.Text & "'"
            cmd = New SqlCommand(qry, cn)
            cmd.Parameters.Add(New SqlParameter("@StudentID", Val(txtStudentID.Text)))
            cmd.Parameters.Add(New SqlParameter("@StudentName", txtName.Text))
            cmd.Parameters.Add(New SqlParameter("@Day", cboDay.Text))
            cmd.Parameters.Add(New SqlParameter("@Month", cboMonth.Text))
            cmd.Parameters.Add(New SqlParameter("@Year", txtYear.Text))
            cmd.Parameters.Add(New SqlParameter("@Age", Val(lblAge.Text)))
            cmd.Parameters.Add(New SqlParameter("@DateAdmit", DateTimePicker1.Value)).ToString()
            cmd.Parameters.Add(New SqlParameter("@Gender", Gender))
            cmd.Parameters.Add(New SqlParameter("@GuardianName", txtGName.Text))
            cmd.Parameters.Add(New SqlParameter("@Phone", txtPhone.Text))
            cmd.Parameters.Add(New SqlParameter("@Email", txtEmail.Text))
            cmd.Parameters.Add(New SqlParameter("@Address", txtAddress.Text))
            cmd.Parameters.Add(New SqlParameter("@City", txtTown.Text))
            cmd.Parameters.Add(New SqlParameter("@Region", cboRegion.Text))
            If img Is Nothing Then
                cmd.Parameters.Add(New SqlParameter("@Photo", DBNull.Value))
            Else
                cmd.Parameters.Add(New SqlParameter("@Photo", img))
            End If

        cmd.ExecuteNonQuery()
        MessageBox.Show("Record successfully Updated", "Updated", MessageBoxButtons.OK, MessageBoxIcon.Informaation)

1 Ответ

0 голосов
/ 12 декабря 2011

Вот одно из решений.Замените:

qry = "update StudentDetails.Students set StudentName=@StudentName,Day=@Day,Month=@Month,Year=@Year,Age=@Age,DateAdmit=@DateAdmit,Gender=@Gender,GuardianName=@GuardianName,Phone=@Phone,Email=@Email,Address=@Address,City=@City,Region=@Region,Photo = CASE WHEN @Photo IS NULL THEN Photo ELSE @Photo END where StudentId='" & txtStudentID.Text & "'"

на:

    Dim sbQry As New StringBuilder(1000)

    sbQry.Append("update StudentDetails.Students set StudentID=@StudentID,StudentName=@StudentName,Day=@Day,Month=@Month,Year=@Year,Age=@Age,DateAdmit=@DateAdmit,Gender=@Gender,GuardianName=@GuardianName,Phone=@Phone,Email=@Email,Address=@Address,City=@City,Region=@Region")
    If img IsNot Nothing Then
        sbQry.Append(",Photo=@Photo")
    End If
    sbQry.Append(" where StudentId='").Append(txtStudentID.Text).Append("'")

    cmd = New SqlCommand(sbQry.ToString, cn)

и замените это:

If img Is Nothing Then
    cmd.Parameters.Add(New SqlParameter("@Photo", DBNull.Value))
Else
    cmd.Parameters.Add(New SqlParameter("@Photo", img))
End If

следующим:

If img IsNot Nothing Then
    cmd.Parameters.Add(New SqlParameter("@Photo", img))
End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...