ユーザーのプロファイルイメージをSQLに保存しようとしています。私の問題は、データベーステーブルには何も保存されないということです。イメージを保存する列には、データ型としてimage
があります。ASP.NETでFileUploadを使用してSQLでイメージを更新する
ここに私のコードです:
更新:コードが更新され、動作しています。問題はクエリで使用されたパラメータでした。 SeMとCrowcoderに感謝します!
protected void ButtonPic_Click(object sender, EventArgs e)
{
string filePath = FileUpload1.PostedFile.FileName;
string filename = Path.GetFileName(filePath);
string ext = Path.GetExtension(filename);
string contenttype = string.Empty;
string username = User.Identity.Name; // Gets the current username
switch (ext)
{
case ".jpg":
contenttype = "image/jpg";
break;
case ".png":
contenttype = "image/png";
break;
}
if (contenttype != string.Empty)
{
Stream fs = FileUpload1.PostedFile.InputStream;
BinaryReader br = new BinaryReader(fs);
byte[] bytes = br.ReadBytes((int)fs.Length + 1);
string base64String = Convert.ToBase64String(bytes, 0, bytes.Length);
Image1.ImageUrl = "data:image/png;base64," + base64String;
string constr = ConfigurationManager.ConnectionStrings["LoginDBConnectionString"].ConnectionString;
string strQuery = "UPDATE Users SET [email protected] WHERE [email protected]";
try
{
using (SqlConnection con = new SqlConnection(constr))
{
con.Open();
using (SqlCommand cmd = con.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add(new SqlParameter("@data", bytes));
cmd.Parameters.Add(new SqlParameter("@user", username));
cmd.CommandText = strQuery;
cmd.ExecuteNonQuery();
}
}
}
catch (Exception ex)
{
}
}
else
{
lblMessage.ForeColor = System.Drawing.Color.Red;
lblMessage.Text = "Filformat stöds inte." +
" Endast jpg/png är tillåtet";
}
}
バイト配列への変換は機能していますが、問題がどこにあるかわかりません。
try
{
using (SqlConnection con = new SqlConnection(constr))
{
con.Open();
using (SqlCommand cmd = con.CreateCommand())
{
cmd.CommandType = CommandType.Text;
cmd.Parameters.Add(new SqlParameter("@data", bytes));
cmd.Parameters.Add(new SqlParameter("@user", LoginName1.ToString()));
cmd.CommandText = strQuery;
cmd.ExecuteNonQuery();
}
}
}
catch(Exception ex)
{
//Handle your exception
}
は、あなたの例外をキャッチし、データベースまたはクエリ文字列から問題点を確認してください。
try/catchブロックを置き、エラーを見つけてください –
プロジェクトには、接続文字列があるxml構成ファイルがあります。 xmlを開き、接続文字列が正しいかどうかを確認します( "LoginDBConnectionString")。 – jdweng
'SqlDataAdapter sda = new SqlDataAdapter()'はどこで使用しましたか? – SeM