Как я могу решить, что "пустое имя пути не является законным" в VB.NET .
я пытаюсь сохранить профиль учителя с изображением в ms access с помощью vb.net-да.
Что я уже пробовал:
Public Overloads Function SaveMEMBER() As DataSet Return Me.SaveMEMBER("RFID") End Function Public Overloads Function SaveMEMBER(ByVal sortfield As String) As DataSet Dim OpenFileDialog1 As New OpenFileDialog Dim fsreader As New FileStream(OpenFileDialog1.FileName, FileMode.Open, FileAccess.Read) Dim breader As New BinaryReader(fsreader) Dim imgbuffer(fsreader.Length) As Byte breader.Read(imgbuffer, 0, fsreader.Length) fsreader.Close() Dim a As String Dim b As String b = Form4.lbldate.Text a = Form4.txtname.Text & ", " & Form4.txtmid.Text & " " & Form4.txtsur.Text & "." Dim conn As OleDb.OleDbConnection = GetConnection() Dim SQL As String Try SQL = "INSERT INTO PROFILE ( [RFID], [IDNUMBER], [NAME], [GENDER], [POSITION], [BIRTHDATE], [AGE]," & _ " [DATEENCODED],[PICTURE])VALUES ( RFID, IDNUMBER, NAME, GENDER, POSITION, BIRTHDATE, AGE, DATEENCODED, PICTURE)" Dim cmd As New OleDb.OleDbCommand(SQL, conn) cmd.Parameters.Add(New OleDb.OleDbParameter("RFID", Form4.txtrfid.Text)) cmd.Parameters.Add(New OleDb.OleDbParameter("IDNUMBER", Form4.txtid.Text)) cmd.Parameters.Add(New OleDb.OleDbParameter("NAME", a)) cmd.Parameters.Add(New OleDb.OleDbParameter("GENDER", Form4.cbogen.SelectedItem)) cmd.Parameters.Add(New OleDb.OleDbParameter("POSITION", Form4.txtpos.Text)) cmd.Parameters.Add(New OleDb.OleDbParameter("BIRTHDATE", Form4.txtbdate.Text)) cmd.Parameters.Add(New OleDb.OleDbParameter("AGE", Form4.txtage.Text)) cmd.Parameters.Add(New OleDb.OleDbParameter("DATEENCODED", b)) acscmd.CommandText = strsql acscmd.Connection = acsconn acscmd.Parameters.AddWithValue("PICTURE", imgbuffer) conn.Open() cmd.ExecuteNonQuery() MessageBox.Show("New Member is added!") clear() Catch ex As Exception MsgBox("Error in connection!ID or PIN already exist!") Finally conn.Close() conn.Dispose() End Try End Function
Richard MacCutchan
Где-то в этом коде (вы не сказали нам, где происходит ошибка) вы пытаетесь сослаться на файл (я предполагаю), не указывая его имя.
Почему вы храните даты и возраст в виде строк? В самом деле, зачем вообще хранить возраст, если он будет неправильным, как только эта запись будет существовать более 24 часов? Вы должны хранить даты в виде типов Date или DateTime и вычислять значения возраста только тогда, когда вам нужно их отобразить.
И наконец, вы должны проверить возвращаемое значение из ExecuteNonQuery
, чтобы убедиться, что ваша команда SQL выполнена успешно. Не думайте, что это сработало.