Этот фрагмент кода работает правильно, если есть значение без апострофа. Но если ddList.SelectedValue, скажем, женский день, показывает «Некорректный синтаксис рядом с». Незакрытая кавычка после символьной строки «». Я попробовал albumName.Replace, но пока не повезло.Невозможно удалить апостроф
protected void btnUpload_Click(object sender, EventArgs e)
{
string albumName = ddList.SelectedValue.ToString();
albumName.Replace("'", "''");
conn.Open();
SqlCommand command = new SqlCommand("select ID from Album where AlbumName = '" + albumName + "'", conn);
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
AlbmID = Int32.Parse((reader["ID"].ToString()));
}
reader.Close();
if (fileuploadimages.HasFile == false)
{ ScriptManager.RegisterStartupScript(Page, Page.GetType(), "key", "<script>alert('No File Uploaded.')</script>", false); }
else
{
//Get Filename from fileupload control
string filename = Path.GetFileName(fileuploadimages.PostedFile.FileName);
//Save images into SlideImages folder
fileuploadimages.SaveAs(Server.MapPath("Pictures/" + filename));
//Open the database connection
//Query to insert images name and Description into database
SqlCommand cmd = new SqlCommand("Insert into Images(ImagePath,Album_ID,ImageDesc) values(@ImagePath,@Album_ID,@ImageDesc)", conn);
//Passing parameters to query
cmd.Parameters.AddWithValue("@ImagePath", filename);
cmd.Parameters.AddWithValue("@Album_ID", AlbmID);
cmd.Parameters.AddWithValue("@ImageDesc", txtDescription.Text);
cmd.ExecuteNonQuery();
//Close dbconnection
conn.Close();
txtDescription.Text = "";
BindDataList();
}
}
У вас есть инъекции SQL уязвимость. Вам нужно использовать параметры. – SLaks
Я это знаю. Это причина этой проблемы? – user3229034
Похоже, вы уже знаете, как использовать параметры (ваш второй запрос). Почему бы вам (ваш первый запрос)? Это точно, как вы это исправите. В настоящее время ваш первый запрос - это *** выполнение пользовательского ввода в виде кода ***, который в основном позволяет любому пользователю выполнять любой код, который им нужен в вашей базе данных. – David