如何将数据库中的图像检索到网络表单
本文关键字:图像检索 网络 表单 数据库 | 更新日期: 2023-09-27 18:35:24
我正在使用 asp.net C#构建一个社交网站,并且我在检索图像时遇到问题,当我将图像上传到数据库时,它的名称将被更改并保存在我提到的真实路径上。我还想说它作为其名称保存在数据库中,但我无法将其链接到网络表单。
网页代码
<asp:Image ID="Pro_pic" runat="server" Height="233px" ImageUrl="~/Profile/Image/Default.png" style="margin-left: 8px; margin-top: 13px" Width="187px" />
这是文件背后的代码
protected void Page_Load(object sender, EventArgs e)
{
string db = "";
db = ConfigurationManager.ConnectionStrings["RegistrationConnectionString"].ConnectionString;
SqlConnection con = new SqlConnection(db);
con.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "SELECT * FROM [UserData] WHERE Email = '" + Session["Email"].ToString() + "'";
cmd.Connection = con;
SqlDataReader dr;
dr = cmd.ExecuteReader();
while (dr.Read())
{
Pro_pic.ImageUrl = @"C:'Users'Supun'Documents'Visual Studio 2013'WebSites'MeetYou'ProfilePic'"+dr["ProfilePic"];
}
con.Close();
}
这是SQL代码
CREATE TABLE [dbo].[UserData] (
[YourName] VARCHAR (50) NULL,
[Email] VARCHAR (50) NOT NULL,
[Password] VARCHAR (50) NULL,
[Gender] VARCHAR (50) NULL,
[Birthday] VARCHAR (50) NULL,
[AboutMe] VARCHAR (50) NULL,
[Country] VARCHAR (50) NULL,
[ID] NVARCHAR (50) NOT NULL,
[ProfilePic ] NVARCHAR (500) NULL,
CONSTRAINT [PK_UserData] PRIMARY KEY CLUSTERED ([Email] ASC)
);
有朝一日可以告诉我如何正确获取此图像 URL 吗???
我认为这是错误的
Pro_pic.ImageUrl = @"C:'Users'Supun'Documents'Visual Studio 2013'WebSites'MeetYou'ProfilePic'"+dr["ProfilePic"];
您应该将包含图像的文件夹作为应用程序的子文件夹。将其直接放在应用程序外部的位置将导致此类访问问题。如果将文件夹(我们将其命名为"图像")放在应用程序位置,则可以将 ImageUrl 属性分配为"~/图像/"+ 文件名。
在 Web 环境中处理图像时,应遵循某些准则,尤其是 ASP.NET 和 MVC。
-
尽量不要使用字节 [] 流存储图像,然后使用既慢又未优化的查询从数据库重建它。
-
标准方法是在放置图像的根目录中创建一个/Images 文件夹。
-
编写类库:
公共类查询类{ 字符串img_url; SqlConnection con=new SqlConnection("//CONNECTION_STRING"); SqlCommand cmd; SqlDataReader reader;
public string getImageUrl(){ cmd=new SqlCommand("select * from UserData where WHERE Email = '" + Session["Email"].ToString() + "'",con); reader=cmd.ExecuteReader(); while(reader.read()){ img_url=reader[8].ToString(); break; } return img_url; }
-
存储图像的 url(或 Uri),即图像路径示例:/Images/tree.png并将其绑定到图像控件。
-
将 Url 字符串存储为数据库实体,并通过查询检索它。示例:
SELECT img FROM Users WHERE username=@uname
-
运行查询并将 url 存储在字符串中,例如
string img_url=QueryClass.getImageUrl();
-
最后使用
Pro_pic.ImageUrl= "/Images/"+img_url;