2015-04-09 5 views
0

Я просматриваю фотографии (скажем, из C:/pictures /) из формы и сохраняя ее в другой папке (D:/savedimages /). Как получить изображение в папке savedimages? Мне нужно сохранить путь в моем SQL.VB.NET Как получить сохраненное местоположение изображения?

Это код, я использую в получении и сохранении IMG:

Dim filename As String 
Dim getlocation As String 
Sub saveimg() 
    'Get next studid 
    Dim cmd As New MySqlCommand("SELECT id FROM student", conn) 
    Dim reader As MySqlDataReader 
    reader = cmd.ExecuteReader() 
    While reader.Read() 
     filename = (reader.GetInt32(0)) 
    End While 
    reader.Close() 

    'Save image 
    Dim path As String = ".\Photos\" 
    If (Not System.IO.Directory.Exists(path)) And PictureBox1.ImageLocation <> Nothing Then 
     System.IO.Directory.CreateDirectory(path) 
     PictureBox1.Image.Save(".\Photos\" & filename & ".png") 
    ElseIf PictureBox1.ImageLocation <> Nothing Then 
     PictureBox1.Image.Save(".\Photos\" & filename & ".png") 
    End If 
    getlocation = ".\Photos\" & filename & ".png" 
End Sub 

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

Dim list As ListViewItem 
Sub addstud() 
    Dim strings As String = "INSERT INTO student (img) VALUES ('" & getlocation & "')" 
    Dim sqlcommand As New MySqlCommand 
    Dim sqladapter As New MySqlDataAdapter 
    Dim Table As New DataTable 
    With sqlcommand 
     .CommandText = strings 
     .Connection = conn 
    End With 
    With sqladapter 
     .SelectCommand = sqlcommand 
     .Fill(Table) 
    End With 
    Main.lvStudent.Items.Clear() 
    For x As Integer = 0 To Table.Rows.Count - 1 
     list = Main.lvStudent.Items.Add(Table(x)("id").ToString.PadLeft(4, "0")) 
     With list 
      .SubItems.Add(Table(x)("lname").ToString) 
      .SubItems.Add(Table(x)("fname").ToString) 
      .SubItems.Add(Table(x)("mname").ToString) 
      .SubItems.Add(Table(x)("yearlevel").ToString) 
      .SubItems.Add(Table(x)("section").ToString) 
     End With 
     With Main.lvStudent 
      .Items(x).Font = New Font("Century Gothic", 8, FontStyle.Regular) 
     End With 
    Next 
    saveimg() 
    MessageBox.Show("Student successfully added!") 
End Sub 

Пример того, что я хочу, чтобы это произошло: Я просмотрел image1.jpg из C:/фото/и я собираюсь сохранить его в D:/savedimages /, теперь я хочу, чтобы сохранить путь в sql = D: /savedimages/image1.jpg

Спасибо!

+0

Любая конкретная ошибка? – Mahadev

+0

он не сохраняет путь в sql –

+0

Итак, все работает гладко, но путь не сохраняется в db? Вы проверили введенные значения, используя ** Breakpoint **? – Mahadev

ответ

0

Попробуйте использовать System.IO.DirectoryInfo как следующий

Dim path As String = ".\Photos\" 
Dim dir As System.IO.DirectoryInfo 'for saving folder name 
If (Not System.IO.Directory.Exists(path)) And PictureBox1.ImageLocation <> Nothing Then 
    dir = System.IO.Directory.CreateDirectory(path) 
    getlocation = dir.FullName & filename & ".png" 
    PictureBox1.Image.Save(getlocation) 
ElseIf PictureBox1.ImageLocation <> Nothing Then 
    getlocation = New System.IO.DirectoryInfo(path).FullName & filename & ".png" 
    PictureBox1.Image.Save(getlocation) 
End If 
+0

Почти! : D Но это не показывает обратную косую черту «\» в пути. это выглядит так: D: ImagesPhotosFilename.png –

+0

Действительно? он работает на моем, хотя. Попробуйте использовать контрольные точки. Или вы имеете в виду, что значение, вставленное в таблицу, не имеет «\»? Вы должны избегать обратной косой черты. :) – Nikko

+0

проверить ссылку http://stackoverflow.com/questions/1261220/escape-a-string-add-slashes-in-vb-net – Nikko

Смежные вопросы