正在检查数据集中的byte[]
本文关键字:byte 集中 数据集 检查 数据 | 更新日期: 2023-09-27 18:16:26
我有一个应用程序的图片,可以添加到sql数据库与一些信息。我保持图片作为varbinary
在sql表。我想确认一下图片之前是否添加过我的代码如下:
byte[] img = File.ReadAllBytes(item);
//that converts the file to bytearray
string str = ByteString(img);
//ByteString is a method that converts bytearray to string (It works)
DataRow[] satirlar = das.Tables[0].Select("PicBinary=" + str);
//sql table keeps picture as varbinary in PicBinary Column
if (satirlar[0]!=null)
{
//codes
continue;
}
但我得到一个异常("列(//不可读的)没有找到")在我的das.Tables[0].Select command
..任何建议吗?
我的第一个想法是"不可读的东西"是图像文件内容的字符串表示,Select
将表达式"PicBinary=" + str
的右侧视为列名,因为它没有引用。
也就是说,我不确定DataTable
的Select
方法是否允许您以这种方式进行比较。您可能希望查看LINQ to DataSet(如本答案所建议的),以便对文件中的数据和该列中每个单元格的内容进行逐字节的比较。
在传递select
的字符串变量时需要添加正确的Escape Sequences
。
:
我可能错了。
按如下方式传递参数?
SqlParameter parameter = new SqlParameter("@PicBinary", SqlDbType.VarBinary, buffer.Length);
parameter.Value = buffer;
sqlCommand.Parameters.Add(parameter);
其中buffer
是查询的输入数据