我正在處理涉及SQLite數據庫和一堆圖像的項目。一切都將被放入一個外部硬盤驅動器,並且一切都是隻讀的(沒有CRUD的東西)。在C#中操作SQLite數據或爲圖像標記操作字符串
數據庫包含照片表,其中一列(命名路徑)是照片的路徑(字符串)。我想用一個Telerik Rotator來顯示這些照片(這是在RadWindow裏面,在RadGrid中選擇一行後打開,如果這對你有幫助的話)。
我的問題是:路徑需要改變。每一個以H:\開始,我需要刪除它,並替換爲〜/ ThisFolder /(它只是指向../ThisFolder)。對於項目的其他部分,使用ResolveUrl("~/ThisFolder/" + path.Remove(0, 3))
已經工作,但我無法弄清楚如何在這裏做到這一點。
我需要在將SQLite數據放入DataTable之後操作Path列中的數據,或者在進入asp:Image標記之前稍後處理Path字符串。
這裏是我如何從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 here ....
任何幫助將不勝感激!如果我在某個地方不清楚,請隨時提問。
哪個版本的.NET? – 2012-04-19 16:13:27
抱歉,抱歉。 asp.net – StoneRanger 2012-04-19 16:17:47
我的意思是3.5或4.0等,因爲有關於直接添加一些字符串處理屬性到綁定的討論。 – 2012-04-19 16:21:26