私が持っているのは、画像をアップロードし、そのパスを画像の優先順位でデータベースに保存するページです。これは単なる例です。データベースに5つの画像があり、優先度が次のようになっています
ID ImageName Description Path Priority
1 1.jpg Hello xxxx 1
2 2.jpg hi xxxx 2
3 3.jpg how xxxx 3
4 4.jpg good xxxx 4
5 5.jpg bye xxxx 5
私のページには、ファイルをアップロードするファイルアップローダーコントロールと、優先度がデータベースから来る優先度のドロップダウンリストがあります。
今私の質問は、アップロードする画像を参照し、ドロップダウンリストから優先度を選択するときに、画像をその優先度に配置し、その画像の優先度を1ずつ増やすなどです。
画像番号6をアップロードして優先度3で保存したい場合、データベースは次のようになります
ID ImageName Description Path Priority
1 1.jpg Hello xxxx 1
2 2.jpg hi xxxx 2
6 6.jpg you xxxx 3
3 3.jpg how xxxx 4
4 4.jpg good xxxx 5
5 5.jpg bye xxxx 6
これは image.aspx.cs ファイルをアップロードするための私のコードです
protected void Page_Load(object sender, EventArgs e)
{
AutoNumber();
}
public void AutoNumber()
{
con.Open();
SqlCommand cmd = new SqlCommand("SELECT COUNT(Priority) as Tot FROM TestImages", con);
SqlDataReader dr;
dr = cmd.ExecuteReader();
while (dr.Read())
{
int i = Convert.ToInt32(dr["tot"]);
if (i > 0)
{
int j = i + 1;
lblPriority.Text = "0" + j.ToString();
}
else
{
lblPriority.Text = "1";
}
}
con.Close();
}
protected void btnSubmit_Click1(object sender, EventArgs e)
{
con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["WebGallery"].ConnectionString;
string Priority = lblPriority.Text.Trim();
//Get Filename from fileupload control
string imgName = fileuploadimages.FileName.ToString();
//sets the image path
string imgPath = "Images/"+""+ddlDepartment.SelectedValue+"/";
bool IsExists = System.IO.Directory.Exists(Server.MapPath(imgPath));
if (!IsExists)
System.IO.Directory.CreateDirectory(Server.MapPath(imgPath));
//then save it to the Folder
fileuploadimages.SaveAs(Server.MapPath(imgPath+imgName));
//Open the database connection
con.Open();
//Query to insert images name and Description into database
SqlCommand cmd = new SqlCommand("Insert into TestImages(ImageName,Description,Path,Priority) values(@ImageName,@Description,@Path,@Priority)" + "Update TestImages set Priority=Priority+1 where Priority='" + ddlPriority.SelectedValue + "'", con);
//Passing parameters to query
cmd.Parameters.AddWithValue("@ImageName", imgName);
cmd.Parameters.AddWithValue("@Description", tbImageName.Text);
cmd.Parameters.AddWithValue("@Path", imgPath + imgName);
cmd.Parameters.AddWithValue("@Priority", lblPriority.Text);
cmd.ExecuteNonQuery();
//Close dbconnection
con.Close();
tbImageName.Text = string.Empty;
}
}
挿入と同様に更新してもエラーはありませんが、ドロップダウンリストから選択した優先度では挿入されず、最後に追加して優先度を更新します。
選択した優先度から画像を配置するにはどうすればよいですか よろしくお願いします