我在数据库中有一个名为 images 的表。我想通过匹配类别来从此表中获取image_path,如下所示。
例如:如果我选择Web开发类别,它应该获取与该类别相关的image_path。
我正在使用asp.net网页。请指导我如何实现它?
id Category image_path
4 New Websites img\images\1982d16f-1a85-49c3-b7ac-94e05152273d_01.jpg
6 Mobiles img\images\87678076-3f19-43c0-909f-eec172d69919_02.jpg
7 Web Development img\images\4fef0362-b5fd-43d1-b988-c5d7e674add0_03.jpg
8 Web Development img\images\5752419a-013d-4c09-99af-f28132102189_04.jpg
9 Web Development img\images\e4876bff-b647-48d6-a3a0-b1e7bfb6d60a_05.jpg
10 Web Designing img\images\e86c3edc-0591-4157-8525-33e52ca21f64_06.jpg
11 Mobiles img\images\2b6ccd51-77f1-4da8-9ed6-98c2b069e92d_07.jpg
12 Mobile apps img\images\44694e2e-24dc-4f06-bb8f-88b597322c0d_005.jpg
13 Mobile apps img\images\9d5ca99a-f6fd-43d7-8a05-a6671f73bd54_006.jpg
答案 0 :(得分:0)
正如您所说"如果我选择",那么我假设您已经在您的方案中退出。
只需按照查询即可从数据库中提取与所选项目相关的所有记录。
Select image_path from images where Category = '"+DropDown1.SelectedItem+"'
以上查询可以解决问题。
如果您是初学者,请了解ADO.NET。它将帮助您继续前进。
注意:下拉是假设。您可以根据您的要求保留。
答案 1 :(得分:0)
这是检索图像路径的一种非常直接的方法:
public List<string> GetImagePathsForCategory(string category)
{
const string DatabaseConnectionString = "MyConnectionString"; //probably use a setting from your web.config
const string CategoryParameterName = "@version";
const string ImagePathQuerySqlString = "Select image_path from images where Category = " + CategoryParameterName;
var imagePaths = new List<string>();
using (var dbConnection = new SqlConnection(DatabaseConnectionString))
{
dbConnection.Open();
using (var query = new SqlCommand(ImagePathQuerySqlString, dbConnection))
{
query.Parameters.Add(new SqlParameter() { ParameterName = CategoryParameterName, Value = category });
using (var reader = query.ExecuteReader())
{
while (reader.Read())
{
imagePaths.Add(reader.GetString(0));
}
}
}
}
return imagePaths;
}
虽然这对于一次性使用是可以的,但如果您经常查询数据库,那么我会查看ORM(例如NHibernate或实体框架),这将完成繁重的任务。您或 - 如果您不想这样做 - 那么请使用ADO.Net实施您自己的Data Access Layer或Repository Pattern。