当前位置: 首页 > 编程语言 > C#

使用C#创建的映像 – 如何通过SQL将它们插入BLOB中分享

时间:2023-04-10 16:26:53 C#

C#学习教程:使用C#创建的图像-如何通过SQL将它们插入BLOB有我的代码intsWidth=1600,sHeight=1200;位图B_M_P=位图(sWidth,sHeight);图形gfx=Graphics.FromImage((Image)B_M_P);gfx.CopyFromScreen(0,0,0,0,新尺寸(screenWidth,screenHeight));B_M_P.Save("img.jpg",ImageFormat.Jpeg);我希望能够将它发送到我的SQL或MySQL,并将它们作为BLOB存储在数据库中间,而不是将其保存为图像。我也知道LINQ查询数据库。我不知道的是中间部分。如果是'Byte',转换非常简单。ImageConverterimgc=newImageConverter();Byte[]temp=(byte[])imgc.ConvertTo(B_M_P,typeof(byte[]));以便稍后我可以准备我的查询“INSERTINTOEMPLOYEE(pic)VALUES('"+temp+"');”你是对的,你只需要把它变成一个字节数组。表的数据类型应为VarBinary(max)。注意这里有一个Image数据类型,但是这个数据类型会在微软SQLServer的未来版本中被移除,所以微软建议大家改用VarBinary,以便以后兼容。BLOB和VarBinary(max)是一回事。来自UnderstandingVARCHAR(MAX)inSQLServer2005为了解决这个问题,微软在SQLServer2005中引入了VARCHAR(MAX)、NVARCHAR(MAX)和VARBINARY(MAX)数据类型。这些数据类型可以容纳与BLOB相同的数据量(2GB),并且它们存储在用于其他数据类型的相同类型的数据页中。当MAX数据类型的数据超过8KB时,将使用溢出页。SQLServer2005自动为页面分配溢出指示符,并知道如何以与操作其他数据类型相同的方式操作数据行。您可以在存储过程或函数中声明MAX数据类型的变量,甚至可以将它们作为变量传递。您也可以在字符串函数中使用它们。Microsoft建议在SQLServer2005中使用MAX数据类型而不是BLOB。事实上,在SQLServer的未来版本中不推荐使用BLOB。我在顶部提到的图像数据类型是旧式BLOB数据类型的一个示例。下面是代码应该如何使用的示例(varcmd=SqlCommand("INSERTINTOEMPLOYEE(pic)VALUES(@pic);",connection){cmd.Parameters.Add("@pic",temp);cmd.ExecuteNonQuery();}但是,如果您处理大文件,则存在一些问题,请参阅此SO答案及其链接以深入了解如何在数据库中存储大数据对象。以上是C#学习教程:C#创建的图片-如何通过SQL将它们插入到BLOB中分享所有内容,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场,如涉及侵权,请点击右侧联系管理员删除,如需转载请注明出处: