我有一个数据库 (sql server 2008),我在 visual studio 2010 中使用 c#。
我想与我的数据库建立连接。我为此编写了如下代码:
SqlConnection mySqlConnection = new SqlConnection
("Data Source=servername\\SQL2008; Initial Catalog=MyData;UID=MyID;PWD=mypassword;");
SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
mySqlCommand.CommandText = "SELECT image_column FROM images_table ";
mySqlConnection.Open();
SqlDataReader productsSqlDataReader = mySqlCommand.ExecuteReader();
我不知道如何进行下一步。我的意思是执行上述语句后如何从阅读器中提取列?此外,我需要逐行浏览整个列并将每个图像转换为 IContent 项目。我是否必须为此编写自己的转换器,或者是否有任何 .NET 类已经执行此操作?
这是场景。我有一个包含 20 列的表格,其中一列是 images_column。该列是唯一将图像存储为二进制数据的列。其余列通常是与该特定图像关联的整数(其大小值)和字符串(其名称、位置等)。我希望现在一切都清楚了。
谢谢。
最佳答案
根据您在数据库中保存图像的方式,您可以使用 Bitmap 提取它们类(class)。它的构造函数需要几个不同的参数,例如 Stream。
您可以使用其 Read 从阅读器获取数据功能。它给你一个 bool 值,让你知道你是否有有效的行。您可以在 if 语句或 while 语句中使用它。
例如,将数据库列中的数据提供给 MemoryStream,然后将其提供给 Bitmap 构造函数。
while (productsSqlDataReader.Read()) {
MemoryStream stream = new MemoryStream((byte[])productsSqlDataReader["image_column"]);
new Bitmap(stream);
}
关于c# - 使用图像作为数据库表列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3971523/