私は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になりますが....
どんな助けでも大歓迎です!どこかはっきりしない場合は、遠慮なく質問してください。