1

私はSQLiteデータベースとたくさんの画像を含むプロジェクトに取り組んでいます。すべてが外付けハードドライブに入れられ、すべてが読み取り専用です(CRUDのものはありません)。

データベースには写真のテーブルが含まれており、列の1つ(Pathという名前)が写真へのパス(文字列)になっています。Telerik Rotatorを使用して、これらの写真を表示したいと思います(RadGridで行を選択すると開くRadWindow内にあります)。

私の問題は、パスを変更する必要があるということです。それぞれが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:/yadayadahereになりますが....

どんな助けでも大歓迎です!どこかはっきりしない場合は、遠慮なく質問してください。

4

1 に答える 1

1

SQLLiteのreplaceを試してみます。

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

于 2012-04-19T16:19:11.163 に答える