无法将“System.DBNull”类型的对象强制转换为MySQL Image的“System.Byte []”类型[复制](Unable to cast object of type 'System.DBNull' to type 'System.Byte[]' for MySQL Image [duplicate])

我很抱歉再问一下这个问题..我只是简化了这个问题..这是我的问题:

错误点是

Dim image As Byte() = DirectCast(command.ExecuteScalar(), Byte())

代码是

 Dim stream As New MemoryStream()
  Dim command As New MySqlCommand("select Imageblob from employeedetail where EmployeeID = '" + TextBoxEmployeeID.Text + "'", cn)        
 Dim image As Byte() = DirectCast(command.ExecuteScalar(), Byte())
 stream.Write(image, 0, image.Length)

谢谢你的帮助!


This question already has an answer here:

Im sorry to ask again about this question.. I just simplify this question.. This is my problem:

The error point is

Dim image As Byte() = DirectCast(command.ExecuteScalar(), Byte())

The code is

 Dim stream As New MemoryStream()
  Dim command As New MySqlCommand("select Imageblob from employeedetail where EmployeeID = '" + TextBoxEmployeeID.Text + "'", cn)        
 Dim image As Byte() = DirectCast(command.ExecuteScalar(), Byte())
 stream.Write(image, 0, image.Length)

Thanks for your help!


原文:https://stackoverflow.com/questions/37255191
2021-09-07 21:09

满意答案

如果表中的字段为空值,则DBNull是您的查询将返回的内容。 您不能将DBNull对象强制转换为其他类型。 您可以执行以下操作以避免错误

Dim image As Byte()
If Not ISDBNull(DirectCast(command.ExecuteScalar(), Byte())) Then image = DirectCast(command.ExecuteScalar(), Byte())

这只是在将字段分配给image之前检查字段的类型是否为DBNull


DBNull is what your query will return if the field in the table is of null value. You cannot cast a DBNull object to another type. You could do the following to avoid the error

Dim image As Byte()
If Not ISDBNull(DirectCast(command.ExecuteScalar(), Byte())) Then image = DirectCast(command.ExecuteScalar(), Byte())

This simply checks if the type of a field is DBNull before assigning it to image

相关问答

更多

无法将类型为“System.DBNull”的对象转换为键入“System.String”(Unable to cast object of type 'System.DBNull' to type 'System.String`)

可以使用较短的形式: return (accountNumber == DBNull.Value) ? string.Empty : accountNumber.ToString() 编辑:没有注意到ExecuteScalar。 如果返回结果中的字段不存在,它确实返回null。 所以使用代替: return (accountNumber == null) ? string.Empty : accountNumber.ToString() A shorter form can be used:...

错误 - 无法将类型为“System.Byte []”的对象转换为“System.IConvertible”类型(Error-Unable to cast object of type 'System.Byte[]' to type 'System.IConvertible')

哇!! 得到了答案。 测试解决方案: public static void FiletoSql(MemoryStream fileToPut, MySqlConnection con) { byte[] data = fileToPut.ToArray(); try { const string preparedCommand = @"update user_account_statem...

转换:无法将“System.DBNull”类型的对象强制转换为“System.String”类型(Transformation: Unable to cast object of type 'System.DBNull' to type 'System.String')

使用 <%# !string.IsNullOrEmpty(Convert.ToString(Eval("XYZ"))) ? "<tr>XYZ</tr>" : "" %> 从数据库读取时,DBNull是一个特殊值,它告诉您已从数据库中的空值读取。 Convert类已经正确处理了DBNull值。 Convert.ToString(DBNull值)将返回一个空字符串。 Use <%# !string.IsNullOrEmpty(Convert.ToString(Eval("XYZ"))) ? "<tr...

无法将System.DBNull类型的对象强制转换为System.String [duplicate](Unable to cast object of type System.DBNull to type System.String [duplicate])

尝试这个 lblSNO.Text = (erow.SNO == null) ? string.Empty : erow.SNO.ToString() 要么 lblSNO.Text = (erow.SNO == DBNull.Value) ? string.Empty : erow.SNO.ToString() Try this lblSNO.Text = (erow.SNO == null) ? string.Empty : erow.SNO.ToString() or lblSNO.Te...

无法投射“System.DBNull”类型的对象(Unable to cast object of type 'System.DBNull')

使用TryCast而不是DirectCast来避免此问题 Dim binary() As Byte = _ TryCast(structDb.dstResult.Tables(0).Rows(i).Item("documentname"), Byte()) 有关更多信息,请在此处使用TryCast : 为什么使用TryCast而不是DirectCast? Use TryCast instead of DirectCast to avoid this issue Dim binary(...

无法将'System.Byte []'类型的对象强制转换为'System.String'类型(Unable to cast object of type 'System.Byte[]' to type 'System.String')

这是因为您必须使用byte []类型Signature属性绑定字符串类型。 It is because you must be binding a string type with your byte[] type Signature property.

MySQL数据提供程序 - 无法强制类型'System.Byte []'的对象键入'System.IConvertible'(MySQL Data Provider - Unable to cast object of type 'System.Byte[]' to type 'System.IConvertible')

你有没有尝试懒加载包括? var product = DbEntities.Products.FirstOrDefault(p => p.Id == id); product.Images.Load(); // ... and so on 这可能是内容丰富的。 这也是一个已知的问题 。 我不确定目前是否有已知的分辨率。 如果有我无法找到它。 Have you tried lazy loading the includes? var product = DbEntities.Products.F...

无法将类型为“System.DBNull”的对象强制转换为“System.String”。(Unable to cast object of type 'System.DBNull' to type 'System.String'. Error [duplicate])

对于这个特定的行尝试这个: aPartOrder.VendorId = dbReader.GetValue(5)==DBNull?"":dbReader.GetValue(5).value; 更好的是编写辅助函数: private static string MyToString(object o) { if(o == DBNull.Value || o == null) return ""; return o.ToString(); } 并使用它: aPar...

无法将“System.DBNull”类型的对象强制转换为MySQL Image的“System.Byte []”类型[复制](Unable to cast object of type 'System.DBNull' to type 'System.Byte[]' for MySQL Image [duplicate])

如果表中的字段为空值,则DBNull是您的查询将返回的内容。 您不能将DBNull对象强制转换为其他类型。 您可以执行以下操作以避免错误 Dim image As Byte() If Not ISDBNull(DirectCast(command.ExecuteScalar(), Byte())) Then image = DirectCast(command.ExecuteScalar(), Byte()) 这只是在将字段分配给image之前检查字段的类型是否为DBNull DBNull is...

[InvalidCastException:无法将'System.DBNull'类型的对象强制转换为'System.String'。] [duplicate]([InvalidCastException: Unable to cast object of type 'System.DBNull' to type 'System.String'.] [duplicate])

替换它 if (TextBoxUserName.Text == (string)rdr["CUserName"]) 同 if (TextBoxUserName.Text == rdr["CUserName"].ToString()) Replace this if (TextBoxUserName.Text == (string)rdr["CUserName"]) with if (TextBoxUserName.Text == rdr["CUserName"].ToString())

相关文章

更多

ServletOutputStream cannot be resolved to a type

在使用jsp生成web图片时遇到这个问题,这是源代码中的一条语句,源代码可以执行,可是一将源码放入ec ...

Object Oriented Programming

Some might also contend that inheritance should be ...

【HDFS】HADOOP DISTRIBUTED FILE SYSTEM

【HDFS】Hadoop DISTRIBUTED FILE SYSTEM THE CAST CLIEN ...

Guava处理java byte类型工具类-Bytes类

static int indexOf(byte[] array

Guava学习笔记:复写的Object常用方法

  在Java中Object类是所有类的父类,其中有几个需要override的方法比如equals,h ...

【转载】Netflix: System Architectures for Personalization and Recommendation

[原文链接:http://techblog.netflix.com/2013/03/system-ar ...

java System.currentTimeMillis()

for (int i = 0; i &lt; 10; i++) { System.out.print ...

could not find system property or JNDI

Thanks everyone!! Finally got a solution for this p ...

最新问答

更多

在可观察字段Knocout中显示$符号(Display $ sign in observable fields Knocout)

文档中有一个示例,它在“真实”数字值之上使用ko.pureComputed图层: this.price = ko.observable(25.99); this.formattedPrice = ko.pureComputed({ read: function () { return '$' + this.price().toFixed(2); }, write: function (value) { // Strip out unwan

全局和设备功能之间的差异(Difference between global and device functions)

全局函数也称为“内核”。 这是您可以使用CUDA内核调用语义( <<<...>>> )从主机端调用的函数。 设备功能只能从其他设备或全局功能调用。 __device__函数无法从主机代码调用。 Global functions are also called "kernels". It's the functions that you may call from the host side using CUDA kernel call semantics (<<<...>>>). Device

ARM,MCU,DSP,FPGA,SOC各是什么?区别是什么

1. ARM:ARM处理器是Acorn有限公司面向低预算市场设计的第一款RISC微处理器。全称为Acorn RISC Machine。ARM处理器本身是32位设计,但也配备16位指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。 2. MCU:微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格

Facebook JavaScript SDK登录(Facebook JavaScript SDK Login)

以下代码中出现“Log is undefined”错误: function onStatus(response) { Log.info('onStatus', response); if (response.session) { showAccountInfo(); } else { showLoginButton(); } } FB.getLoginStatus(function(response) { onStatus(response); // once on page

会计实操有没有用,北京哪家会计培训最好?

会计实操学了肯定是有用的呀,因为你光考个证只是你找工作的一个必备的证件,但是实操就是很扎实的做账功底了。你学了会计实操就能轻松上岗。给你推荐一个以专业教会计实操为主的会计培训学校吧---仁和会计培训学校。现在也在北京开了分校。建议你可以上网搜索一下,北京仁和会计。就能找到他们,可以了解一下课程的。

字段列表错误中的MySQL未知列(MySQL Unknown column in fieldlist error)

你不能在整个查询中调用mysql_real_escape_string ; 你必须分别在每个变量上调用它。 例: // THIS IS AN EXAMPLE ONLY -- NOT A BEST PRACTICE! $sql = "INSERT INTO `locations`(`id`,`anchor_url`,`anchor_title`) VALUES ". "(1, '".mysql_real_escape_string('http://...')."', ".

在DOM深层获取评论节点(Get comment nodes in DOM deep level)

您可以将TreeWalker与whatToShow设置为NodeFilter.SHOW_ALL一起使用,以查看文档中的所有节点。 var treeWalker = document.createTreeWalker( document.body, NodeFilter.SHOW_ALL, null, false ); var commentList = []; while (treeWalker.nextNode()){ // keep only co

2015年的会计上岗证培训那里好,在西安

在西安的话,还是大众会计学校比较好,都已经办学23年了,小班教学,包学包会

将long lat转换为google maps long lat(converting long lat to google maps long lat)

输入数据的小数部分(例如.8157)不是秒; 它是小数分钟。 所以它应该是: 北纬52度,42.8157分钟或52.7136度 The decimal part of your input data (e.g. .8157) is not seconds; it is decimal minutes. So it should be: latitude 52 degrees, 42.8157 minutes or 52.7136 degrees

XSD xs:列表混乱(XSD xs:list confusion)

如果使用xs:list那么如果使用代码生成器,它将被解析并公开为集合/数组数据结构。 如果您只使用由空格分隔的字符串,那么它将作为常规字符串公开,您将负责解析。 区别仅在于您使用基于xsd的代码生成器。 如果使用SAX或DOM等低级api进行语法分析,则没有区别。 Actually, the class QXmlQuery does exactly what I wanted. Its method bool QXmlQuery::evaluateTo ( QStringList * targe