所以这是场景。我有一个画布,我通过
获取数据var image = canvas.toDataURL("image/png");
我会将数据放入TextArea,以便将其插入数据库
document.getElementById("TextArea1").textContent = image
如果我要在textarea中插入数据,那么" data:image / png; base64,iVBORw0KGgoAAAAN ......"进入数据库,它说
Operand type clash: nvarchar(max) is incompatible with image.
所以,我想要的是什么,我需要做的是转换"数据:image / png; base64,iVBORw0KGgoAAAAN ......"类似于" 0x89504E470D0A1A0A ..."将其插入数据库时。提前谢谢!
答案 0 :(得分:1)
您的图像采用Base64格式,这是一个字符串,您需要先将其转换为字节数组,以便将其保存在数据库中。像这样:
Dim base64String = "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="
Dim con As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Temp\Database1.mdf;Integrated Security=True;User Instance=True")
Dim sql As String = "INSERT INTO MyTable VALUES(@Image)"
Dim cmd As New SqlCommand(sql, con)
Dim imageBytes As Byte() = Convert.FromBase64String(base64String)
Dim p As New SqlParameter("@Image", SqlDbType.Image)
p.Value = imageBytes
cmd.Parameters.Add(p)
cmd.ExecuteNonQuery()
此处有关于将图像加载并保存到数据库的更多详细信息:
http://www.codeproject.com/Articles/437937/Save-and-Retrieve-Image-from-a-SQL-Server-Database
答案 1 :(得分:0)
您正在DB中输入文本,并且您的数据库字段类型是图像,因此您收到错误。如果可能,那么将db字段类型更改为varchar它将起作用。