2016-12-25 3 views
2

イメージ用のビジュアルスタジオのwebformにフォルダを作成し、(請求書)というタイトルで、画像のルートをMySqlデータベースに保存し、Webページのパネルに画像を表示したいと考えています。イメージはフォルダに保存されていますが、データベースには保存されていません。イメージデータベースを保存してウェブページのパネルに表示するにはどうすればいいですか?

Iは

保護されたボイドをPage_Load(オブジェクト送信者、のEventArgs電子) {

string connection = "server=localhost; userid= ; password= ; database=admindb; allowuservariables=True"; 

    MySqlConnection cn = new MySqlConnection(connection); 

    try 
    { 

     string sqlcmd = "SELECT PicAddress FROM InvoicesFP WHERE [email protected]_ID"; 

     cn.Open(); 

     MySqlCommand cmd = new MySqlCommand(sqlcmd, cn); 
     cmd.CommandType = CommandType.Text; 
     MySqlDataReader rdr = cmd.ExecuteReader(); 

     while (rdr.Read()) 
     { 
      string url = rdr["PicAddress"].ToString(); 
      Image1.ImageUrl = url; 
     } 
    } 
    catch (Exception ex) 
    { 
     throw ex; 
    } 
    cn.Close(); 
} 

protected void Button1_Click(object sender, EventArgs e) 
{ 
    #region fileupload 
    var FileExtension = Path.GetExtension(FileUpload1.PostedFile.FileName).Substring(1); 
    string SaveLocation = Server.MapPath("Invoices\\") + Guid.NewGuid().ToString("N") + FileExtension; 
    MySqlConnection connection = new MySqlConnection("server=localhost; userid=root; password=admin1234; database=admindb; allowuservariables=True"); 
    MySqlCommand cmd = new MySqlCommand(); 
    cmd.CommandText = "insert into invoicesfp (PicAddress), VALUES (@PicAddress)"; 
    cmd.CommandType = CommandType.Text; 
    cmd.Connection = connection; 
    cmd.Parameters.AddWithValue("PicAddress", Server.MapPath("~/Invoices")); 
    cmd.Connection.Open(); 
    cmd.BeginExecuteNonQuery(); 
    cmd.Connection.Close(); 

    try 
    { 
     FileUpload1.PostedFile.SaveAs(SaveLocation); 
    } 
    catch (Exception ex) 
    { 
     if (ex is ArgumentNullException || ex is NullReferenceException) 
     { 
      throw ex; 
     } 
    } 
    string PicAddress = "~/Invoices/" + SaveLocation; 
} 

    #endregion 

}

+0

そして、あなたのコーディング問題は....? – Emad

+0

イメージをアップロードしたときにフォルダとデータベースのテーブルに保存されず、エラーが表示されませんでした。 –

+0

2つのエラーを捕まえるだけで、他のものは破棄されます。 catchステートメント内にブレークポイントを置き、ヒットするかどうかを確認します。 – Emad

答えて

0

を試みたコード更新

使用して、最初にこのコードを試してくださいこのサンプルでは、​​Rename Methodを使用する必要はありません。また、Extensionが何であれ、それはsupporですテッド:

#region fileupload 
var FileExtension = Path.GetExtension(FileUpload1.PostedFile.FileName).Substring(1); 
string SaveLocation = Server.MapPath("Invoices\\") + Guid.NewGuid().ToString("N") + "." + FileExtension; 

try 
{ 
FileUpload1.PostedFile.SaveAs(SaveLocation); 
} 
catch (Exception ex) 
{ 
if (ex is ArgumentNullException || ex is NullReferenceException) 
{ 
throw ex; 
} 
} 
string PicAddress = "~/Invoices/" + SaveLocation; 

#endregion 

MySqlConnection connection = new MySqlConnection("server=localhost; userid=root; password=admin1234; database=admindb; allowuservariables=True"); 
MySqlCommand cmd = new MySqlCommand(); 
cmd.CommandText = "INSERT INTO InvoicesFP (PicAddress) VALUES (@PicAddress)"; 
cmd.CommandType = CommandType.Text; 
cmd.Connection = connection; 
cmd.Parameters.AddWithValue("PicAddress", "PicAddress"); 
cmd.Connection.Open(); 
cmd.ExecuteNonQuery(); 
cmd.Connection.Close(); 

その後、あなたのPage_Loadでデータベースをアドレスを取得し、例えばを制御するためにそれを渡すために選択クエリを呼び出すことができます。

const string DB_CONN_STR = "Server=etc;Uid=etc;Pwd=etc;Database=etc;"; 

    MySqlConnection cn = new MySqlConnection(DB_CONN_STR); 

    try { 

     string sqlCmd = "SELECT PicAddress FROM [YourTable] where Id == PicAddress id"; 

     cn.Open(); // have to explicitly open connection (fetches from pool) 

     MySqlCommand cmd = new MySqlCommand(sqlCmd, cn); 
     cmd.CommandType = CommandType.Text; 
     MySqlDataReader rdr = cmd.ExecuteReader(); 

     while(rdr.Read()) 
     { 
      string url = rdr["Name of the Field Assuming PicAddress"].ToString(); 
      Image1.ImageUrl = url; 
     } 
    } 
    catch(Exception ex) 
    { 
     throw ex; 
    } 

ザッツオール - ハッピー

+0

コメントは議論の延長ではありません。この会話は[チャットに移動]されています(http://chat.stackoverflow.com/rooms/131503/discussion-on-answer-by-valkyriee-how-to-save-an-image-database-and-display-それ)。 –

関連する問題