Добавьте изображение и путь к базе данных для конкретных пользователей

#c# #asp.net #gridview

#c# #asp.net #просмотр сетки

Вопрос:

 protected void Upload(object sender, EventArgs e)
    {
        //Extract Image File Name.
        string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);

        //Set the Image File Path.
        string filePath = "~/Uploads/"   fileName;

        //Save the Image File in Folder.
        FileUpload1.PostedFile.SaveAs(Server.MapPath(filePath));
        string mycon = "server =localhost; Uid=root; password = ; persistsecurityinfo = True; database =ovs; SslMode = none";

        MySqlConnection con1 = new MySqlConnection(mycon);
      //  string sql = "INSERT INTO candidate VALUES(@Name, @Path)";
        MySqlCommand cmd = null;
        cmd = new MySqlCommand("INSERT INTO candidate(candidateImage,path where studentID ='"   Session["UserName"]   "') VALUES (@Name,@Path)", con1);

                cmd.Parameters.AddWithValue("@Name", fileName);
                cmd.Parameters.AddWithValue("@Path", filePath);
        con1.Open();
        cmd.ExecuteNonQuery();
        con1.Close();
    }
  

Когда пользователи нажимают кнопку загрузки, изображение и путь будут сохранены в базе данных, принадлежащей конкретным пользователям. Например, пользователи с идентификатором R1001 входят в свою учетную запись, и когда они нажимают кнопку загрузки, изображение и путь будут сохранены под R1001 в базе данных. Я показываю сообщение об ошибке, в котором говорится о наличии синтаксической ошибки, но я не могу ее найти

База данных

Комментарии:

1. в чем заключается ваше сообщение об ошибке?

2. В нем говорится, что в cmd = new MySqlCommand есть синтаксическая ошибка («ВСТАВИТЬ В ЗНАЧЕНИЯ кандидата (candidateImage,path, где StudentID ='» Session[«UserName»] «‘) (@Name,@Path)», con1);

3. почему вы в (candidateImage, путь, где StudentID ='» Session[«UserName»] «‘) где во время вставки?

4. Путь к имени идентификатора студента R1001 Текущая база данных будет выглядеть следующим образом, я намерен, когда пользователи нажмут кнопку загрузки, имя и путь будут добавлены. Путь к имени идентификатора студента R1001 image1 uploads/ images1

5. Поделитесь схемой таблицы. Я имею в виду поля таблиц, чтобы знать, какие поля требуются

Ответ №1:

Вам не нужно Where , когда вы хотите вставить данные в свою таблицу. Я удалил where ваш command и использовал параметр для SessionID.

      protected void Upload(object sender, EventArgs e)
    {
        //Extract Image File Name.
        string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);

        //Set the Image File Path.
        string filePath = "~/Uploads/"   fileName;

        //Save the Image File in Folder.
        FileUpload1.PostedFile.SaveAs(Server.MapPath(filePath));
        string mycon = "server =localhost; Uid=root; password = ; persistsecurityinfo = True; database =ovs; SslMode = none";

        MySqlConnection con1 = new MySqlConnection(mycon);
        //  string sql = "INSERT INTO candidate VALUES(@Name, @Path)";
        SqlCommand cmd = null;
        string command = "update candidate set candidateImage=@Name ,path = @Path where StudentID=@studnetId";
        cmd = new MySqlCommand(command, con1);
        
        cmd.Parameters.AddWithValue("@Name", fileName);
        cmd.Parameters.AddWithValue("@Path", filePath);
        cmd.Parameters.AddWithValue("@studnetId", Session["UserName"]??""); // if student id is accept number in database, you must convert it to int
        con1.Open();
        cmd.ExecuteNonQuery();
        con1.Close();
    }
  

Комментарии:

1. Вы неправильно @studentId написали и вставили @Name дважды вместо @Path though .

2. В базе данных есть 3 столбца: StudentID, имя и путь. Идентификатор студента R1001 уже существует в базе данных, имя и путь — нет. Когда пользователь нажимает кнопку загрузки, он хотел бы сохранить имя и путь под идентификатором StudentID R1001

3. @KekwYc Либо вы обновляете строку и используете WHERE , либо добавляете новую и не добавляете WHERE . Но, как сказал осман Рахими, не существует такой вещи, как вставка с предложением WHERE .

4. @KekwYc Так что вам нужно и обновите. всегда ли есть запись для пользователя?

5. Я меняю команду на update : cmd = new MySqlCommand(«ОБНОВИТЬ НАБОР значений кандидата (candidateImage,путь, где StudentID ='» Session[«UserName»] «‘) (@Name,@Path)», con1);, но он по-прежнему показывает сообщение об ошибке с указанием синтаксической ошибки