ASP.NET存取SQL Server数据库图片教程

需积分: 0 7 下载量 179 浏览量 更新于2024-09-20 收藏 43KB DOC 举报
"这篇文章主要介绍了ASP.NET环境下如何存储和读取SQL Server数据库中的图片,通过创建一个特定的数据表,利用`image`数据类型来存放二进制图像数据,并且提供了上传图片到WEB服务器,然后存入数据库的示例代码。" 在ASP.NET中,与SQL Server数据库交互并存储图片通常涉及以下步骤: 1. 创建存储图片的数据库表: - 在SQL Server中,可以创建一个名为`pic`的表,包含字段如`imgtitle`(图片标题),`imgtype`(图片类型),以及`imgdata`(图片数据),其中`imgdata`字段使用`image`类型,专门用于存储二进制图片数据。 2. 上传图片至Web服务器: - 开发一个ASP.NET Web Form,包含一个文件上传控件(例如`FileUpload`控件,名为`File1`)和一个文本框(如`TextBox1`)用于输入图片标题。 - 当用户选择图片并提交表单时,可以通过`File1.PostedFile.InputStream`获取图片的二进制数据,`File1.PostedFile.ContentLength`获取图片大小,`File1.PostedFile.ContentType`获取图片类型。 3. 存储图片数据到数据库: - 使用ADO.NET连接到SQL Server数据库,创建一个`SqlConnection`对象,并设置其连接字符串,该字符串通常在`Web.config`文件的`appSettings`部分定义。 - 创建一个`SqlCommand`对象,用于执行插入图片的SQL语句,例如:`INSERT INTO ImageStore (imgtitle, imgtype, imgdata) VALUES (@imgtitle, @imgtype, @imgdata)`。 - 为命令对象添加参数,使用`SqlParameter`类,如`@imgtitle`, `@imgtype`, `@imgdata`,并将用户输入的值和图片二进制数据绑定到这些参数。 - 打开数据库连接,执行SQL命令,然后关闭连接。 4. 读取图片从数据库: - 为了从数据库中检索图片,需要创建一个`SqlCommand`对象,设置其`CommandText`为`SELECT`语句,用于获取图片数据。 - 执行查询并使用`ExecuteReader`方法获取`SqlDataReader`,然后读取结果集中的`imgdata`字段。 - 图片数据是二进制流,可以将其写入响应流,以便浏览器可以显示图片。 以下是示例代码片段(简化版): ```csharp // 建立数据库连接 string connStr = ConfigurationManager.AppSettings["connstr"]; SqlConnection connection = new SqlConnection(connStr); connection.Open(); // 准备SQL命令 string sql = "INSERT INTO ImageStore (imgtitle, imgtype, imgdata) VALUES (@imgtitle, @imgtype, @imgdata)"; SqlCommand command = new SqlCommand(sql, connection); // 设置参数 command.Parameters.AddWithValue("@imgtitle", TextBox1.Text); command.Parameters.AddWithValue("@imgtype", File1.PostedFile.ContentType); command.Parameters.AddWithValue("@imgdata", File1.FileBytes); // 执行插入操作 command.ExecuteNonQuery(); connection.Close(); ``` 这段代码展示了如何在ASP.NET中将图片上传并存储到SQL Server数据库。在读取图片时,类似的逻辑可应用于`SELECT`查询,将`imgdata`字段的二进制数据流返回给客户端。请注意,实际应用中需要处理异常和错误,以及考虑安全性问题,例如防止SQL注入攻击。