2012-04-19 56 views
1

我正在處理涉及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 ....

任何幫助將不勝感激!如果我在某個地方不清楚,請隨時提問。

+0

哪個版本的.NET? – 2012-04-19 16:13:27

+0

抱歉,抱歉。 asp.net – StoneRanger 2012-04-19 16:17:47

+0

我的意思是3.5或4.0等,因爲有關於直接添加一些字符串處理屬性到綁定的討論。 – 2012-04-19 16:21:26

回答

1

我會嘗試SQLLite的replace

SELECT ParentTableID, PhotoID, replace(Path,'H:\','') as Path FROM tblPhoto

+0

替換確實改變了數據,但它也改變了從路徑替換列名(Path,'H:\','')。這導致asp:Image標籤找不到Path列。 – StoneRanger 2012-04-19 16:56:03

+1

我已更新聲明。它應該保留現在的列名稱。 – 2012-04-19 16:59:43

+0

Got it! 'SELECT ParentTableID,PhotoID,替換(Path,'H:\','.. \\ ThisFolder')爲C#中的tblPhoto路徑,以及'在C#中。感謝你的幫助! – StoneRanger 2012-04-19 17:11:07