实现从SQL Server存取二进制图片需要经历以下步骤:
- 在SQL Server中创建表来存储图片数据。通常,您需要为每个图像分配两个列:一个用于存储二进制数据,另一个用于存储图像的MIME类型。例如:
CREATE TABLE [dbo].[ImageTable](
[ID] INT PRIMARY KEY IDENTITY(1,1),
[ImageData] VARBINARY(MAX) NOT NULL,
[MimeType] NVARCHAR(64) NOT NULL
)
- 定义使用ADO.NET访问SQL Server的C#代码。这涉及到建立和打开数据库连接、执行查询或命令、读取并处理结果等等。以下是一个示例代码,存储图片到数据库中:
// 连接字符串
string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"
// 创建连接对象
SqlConnection connection = new SqlConnection(connectionString);
// 打开连接
connection.Open();
// 文件数据(byte[])
byte[] fileData = ...;
// MIME类型
string mimeType = ...;
// SQL语句
string sql = "INSERT INTO ImageTable (ImageData, MimeType) VALUES (@ImageData, @MimeType)";
// 创建命令对象
SqlCommand command = new SqlCommand(sql, connection);
// 添加参数
command.Parameters.AddWithValue("@ImageData", fileData);
command.Parameters.AddWithValue("@MimeType", mimeType);
// 执行命令
command.ExecuteNonQuery();
// 关闭连接
connection.Close();
- 使用相同的C#代码从数据库中检索和显示图像:
// 连接字符串
string connectionString = "Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"
// 创建连接对象
SqlConnection connection = new SqlConnection(connectionString);
// 打开连接
connection.Open();
// SQL语句
string sql = "SELECT ImageData, MimeType FROM ImageTable WHERE ID = @ID";
// 创建命令对象
SqlCommand command = new SqlCommand(sql, connection);
// 添加参数
command.Parameters.AddWithValue("@ID", 1);
// 执行命令,并获取数据读取器
SqlDataReader reader = command.ExecuteReader();
// 读取二进制数据和MIME类型
byte[] imageData = null;
string mimeType = "";
if (reader.Read())
{
imageData = (byte[])reader["ImageData"];
mimeType = (string)reader["MimeType"];
}
// 关闭数据读取器
reader.Close();
// 关闭连接
connection.Close();
// 在Web页面中显示图像
Response.ContentType = mimeType;
Response.BinaryWrite(imageData);
以上是一个完整的ASP.NET(C#)实现从SQL Server存取二进制图片的攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:asp.net(c#)实现从sqlserver存取二进制图片的代码 - Python技术站