我正在做一个涉及 SQLite 数据库和一堆图像的项目。一切都将被放入外部硬盘驱动器中,并且一切都是只读的(没有 CRUD 的东西)。
该数据库包含一个照片表,其中一列(名为路径)是照片的路径(字符串)。我想使用 Telerik Rotator 来显示这些照片(它位于 RadWindow 内,如果对您有帮助的话,它会在 RadGrid 中选择一行后打开。)
我的问题是:需要更改路径。每个都以 H:\ 开头,我需要将其删除,并替换为 ~/ThisFolder/(它只指向 ../ThisFolder)。对于项目的所有其他部分,使用ResolveUrl("~/ThisFolder/" + path.Remove(0, 3))
都有效,但我不知道如何在这里做。
我要么需要在将 SQLite 数据放入 DataTable 之后操作 Path 列中的数据,要么稍后在 Path 字符串进入 asp:Image 标记之前对其进行操作。
以下是我从 SQLite 数据库中获取数据并将其放入 DataTable 的方式:
public static DataTable dtTable;
public static string connectionString = ConfigurationManager.ConnectionStrings["Entity"].ConnectionString;
public SQLiteConnection SQLiteConnection = new SQLiteConnection(connectionString);
public SQLiteDataAdapter SQLiteDataAdapter = new SQLiteDataAdapter();
public SQLiteCommand SQLiteCommand = new SQLiteCommand();
private void GetDataSource() //called in Page_Load
{
dtTable = new DataTable();
SQLiteConnection.Open();
try
{
string selectQuery = "SELECT ParentTableID, PhotoID, Path FROM tblPhoto";
SQLiteCommand myCommand = new SQLiteCommand(selectQuery, SQLiteConnection);
using (SQLiteDataReader myReader = myCommand.ExecuteReader())
{
dtTable.Load(myReader);
}
RadRotator1.DataSource = dtTable;
}
finally
{
SQLiteConnection.Close();
}
RadRotator1.DataBind();
}
到目前为止,这是我的 asp 标签:
<asp:Image ID="Images" runat="server" AlternateText="Images" ImageUrl='<%#Bind("~/ThisFolder/{0}", "Path")%>' />
虽然 ImageURL 将是 ../ThisFolder/H:/yadayada 这里....
任何帮助将非常感激!如果我在某个地方不清楚,请随时提出问题。