Member 12603716 Ответов: 1

Почему мой код не сохраняет видео в базе данных.


Я написал код для загрузки видео с веб-страницы в базу данных, но он не работает. всякий раз, когда я выбираю файл и нажимаю кнопку загрузки, он говорит, что файл не выбран.в чем может быть проблема? заяц-это код.

Что я уже пробовал:

byte[] buffer;
    SqlConnection connection;
    protected void BtnUpload_Click(object sender, EventArgs e)
    {
        if (FileUpload1.HasFile && FileUpload1.PostedFile != null
            && FileUpload1.PostedFile.FileName != "")
        {
            HttpPostedFile file = FileUpload1.PostedFile;
            //retrieve the HttpPostedFile object
            buffer = new byte[file.ContentLength];
            int bytesReaded = file.InputStream.Read(buffer, 0,
            FileUpload1.PostedFile.ContentLength);
            if (bytesReaded > 0)
            {
                try
                {
                    connection = new SqlConnection("Data Source=Khawaja\\SQLEXPRESS;Initial Catalog=dbFiles;Integrated Security=True");
                    SqlCommand cmd = new SqlCommand
                    ("INSERT INTO Videos (Video, Video_Name, Video_Size)" +
                     " VALUES (@video, @videoName, @videoSize)", connection);
                    cmd.Parameters.Add("@video",
                        SqlDbType.VarBinary, buffer.Length).Value = buffer;
                    cmd.Parameters.Add("@videoName",
                        SqlDbType.NVarChar).Value = FileUpload1.FileName;
                    cmd.Parameters.Add("@videoSize",
                        SqlDbType.BigInt).Value = file.ContentLength;
                    using (connection)
                    {
                        connection.Open();
                        // int i = cmd.ExecuteNonQuery();
                        cmd.ExecuteReader();
                        Label1.Text = "uploaded";
                    }
                }
                catch (Exception ex)
                {
                    Label1.Text = ex.Message.ToString();
                }
                finally
                {
                    connection.Close();
                }
            }
            //Response.Redirect(Request.Url.AbsoluteUri);
        }
        else
        {
            Label1.Text = "Choose a valid video file";
        }
    }

1 Ответов

Рейтинг:
2

PIEBALDconsult

Я вижу пару незначительных проблем, но ничего такого, что могло бы привести к сбою.

0) в то время как ExecuteReader должен работать, вы можете быть лучше обслужены ExecuteNonQuery.
1) в using оператор не используется обычным способом.

Однако, судя по тому, что вы описали, этот код вообще не вводится.

Пожалуйста, используйте отладчик, чтобы пройти через код и посмотреть, что происходит на самом деле.