Я хочу вставить изображение в мою базу данных SQL. У меня есть этот код в настоящее время, и он вводит нуль, где должно быть изображение. Почему это происходит?Попытка вставить изображение в базу данных sql
Я использую здесь простой класс комплексирования.
Вы можете найти код, я использовал ниже:
Imports System.IO
Imports System.Data.SqlClient
Public Class addquestion
Dim con As New System.Data.Odbc.OdbcConnection("DRIVER={MySQL ODBC 5.2 ANSI Driver};SERVER=localhost;PORT=3306;DATABASE=physicsapp;USER=root;PASSWORD=root;OPTION=3;")
Dim rs As Odbc.OdbcDataReader
Private Sub addquestion_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Sub QuestionButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles QuestionButton.Click
Dim myFileDlog As New OpenFileDialog
myFileDlog.InitialDirectory = "c:/"
myFileDlog.Filter = "All Files (*.*)|*.*" & _"|Picture Files (*.png)|*.png"
myFileDlog.FilterIndex = 1
myFileDlog.RestoreDirectory = True
If myFileDlog.ShowDialog() = _
DialogResult.OK Then
If Dir(myFileDlog.FileName) <> "" Then
MsgBox("File Exists: " & _
myFileDlog.FileName, _
MsgBoxStyle.Information)
Else
MsgBox("File Not Found", _
MsgBoxStyle.Critical)
End If
End If
qnametextbox.Text = myFileDlog.FileName
End Sub
Dim ans as Char = "B"
Dim file As String = qnametextbox.Text
Dim question As Image
question = Image.FromFile(file)
Dim ms As New MemoryStream()
question.Save(ms, System.Drawing.Imaging.ImageFormat.Png)
Dim data As Byte() = ms.GetBuffer()
Dim s As String = "INSERT INTO tests VALUES (@Question ,'" & ans & "', 200)"
Dim sql As New Odbc.OdbcCommand(s, con)
sql.Parameters.Add("@Question", Odbc.OdbcType.VarBinary).Value = data
con.Open()
sql.ExecuteNonQuery()
con.Close()
это определение таблицы
CREATE TABLE `tests` (
`Question` blob NOT NULL,
`CorrectAnswer` varchar(8) DEFAULT NULL,
`QuestionNumber` int(8) NOT NULL AUTO_INCREMENT,
KEY `QuestionNumber` (`QuestionNumber`)
) ENGINE=MyISAM AUTO_INCREMENT=201 DEFAULT CHARSET=utf8
Любое предложение может помочь.
Спасибо.
1-Какие СУБД вы работаете? Из вашего подключения это похоже на MYSQL. Удалите тег sql-server из вопроса. –
2-пост SQL-определение таблицы, в которую вы вставляете. –
где вы определяете 'ans' – Nomeaning25