Aiza Pro Ответов: 2

Как вставить несколько изображений в одну строку с помощью таблицы? (C# web)


try
           {
               string filename = Path.GetFileName(img_upload1.PostedFile.FileName);

               img_upload1.SaveAs(Server.MapPath("~/Content/Img/cars/" + filename));

               string cs = ConfigurationManager.ConnectionStrings["cs_ki"].ToString();
               SqlConnection con = new SqlConnection(cs);
               con.Open();

               SqlCommand cmd = new SqlCommand("insert into tbl_car "
                 + "(cars_brand,cars_type,cars_img1) values (@cars_brand,@cars_type,@cars_img1)", con);
               cmd.Parameters.AddWithValue("@cars_img1", "~/Content/Img/cars/" + filename);

               cmd.Parameters.AddWithValue("@cars_brand", txt_brand.Text);
                cmd.Parameters.AddWithValue("@cars_type", txt_type.Text);
      
               //cmd.Parameters.AddWithValue("@cars_img1", txt_brand.Text);

               cmd.Connection = con;
               cmd.ExecuteNonQuery();




               lbl_alert.Visible = true;
               lbl_alert.Text = 
               con.Close();
           }


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

как вставить несколько изображений для одного идентификатора?

Karthik_Mahalingam

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

Aiza Pro

так что спасибо. я создаю новый tbl . теперь вставка картинок в одной записи?

Karthik_Mahalingam

вставьте основные сведения в основную таблицу, а информацию об изображениях-в дочернюю.

Aiza Pro

Выберите dbo.tbl_car.name, dbo.tbl_img. imgpath
От dbo.tbl_car внутреннее соединение
ДБО.tbl_img на ДБО.tbl_car.ИД = ДБО.tbl_img.carid



Сохраняется только одно из выбранных изображений

Karthik_Mahalingam

если есть только одна запись, то будет выбрана только одна.

Aiza Pro

Как сохранить мои изображения с одним идентификатором?

Karthik_Mahalingam

как разрабатывается ваше приложение?
значит, как получить несколько изображений?

Aiza Pro

я создаю таблицу для изображения,
id, путь, imgid
при вставке в C# должны быть общими?

Karthik_Mahalingam

общие средства?

Aiza Pro

как мне вставить imgid?

Karthik_Mahalingam

но скажите мне, как вы получите несколько изображений?

Aiza Pro

если (!загрузчик.HasFile)
{

//for (int i = 0; I & lt; Request.Файлы.Граф; i++)
//{
// HttpPostedFile PostedFile = Запрос.Файлы[i];
//}

lbl_alert.Видимое = истинное;
lbl_alert.Text = "Пожалуйста, выберите файл изображения"; / / проверка того, что загрузчик файлов не имеет выбранного файла
}
ещё
{
foreach (var-файл в uploader.PostedFiles)

{
int length = uploader.PostedFile.ContentLength;
byte[] pic = новый байт[длина];
загрузчик.PostedFile.InputStream. Read(pic, 0, длина);
пробовать
{
строка файла = путь.GetFileName(загрузчик.PostedFile.имя файла);
загрузчик.SaveAs (Сервер.MapPath ("~/Insert/Img/ " + filename));
строка cs = ConfigurationManager.ConnectionStrings ["theoneConnectionString"].Метод toString();
SqlConnection con = новый SqlConnection(cs);

против.Открыть();
SqlCommand cmd = new SqlCommand ("вставить в tbl_car "
+ "(имя) значения (@имя)", кон); //УМК.Параметры.AddWithValue ("@name", txtname.Текст);
УМК.Параметры.AddWithValue ("@name", txt_name.Текст);
УМК.Подключение = кон;
//con = new SqlConnection(cs);
//lbl_alert.Видимое = истинное;
УМК.Метод executenonquery();
против.Закрывать();
против.Открыть();
SqlCommand cmd1 = new SqlCommand ("вставить в tbl_img "
+ "(imgpath) values (@imgpath)", con);
cmd1.Параметры.AddWithValue ("@imgpath", "~ / Insert/Img/ " + filename);
cmd1.Подключение = кон;
cmd1.Метод executenonquery();
lbl_alert.Видимое = истинное;
lbl_alert.Text = "Successful"; / / после успешной загрузки изображения
против.Закрывать();
}
наконец
{
lbl_alert.Text = " готово";
txt_name.Текст = "";



}
}

Karthik_Mahalingam

tbl car должен быть вставлен один раз, а tbl img несколько раз зависит от цикла..
выйдя на ужин, после этого я выложу четкое решение.

Aiza Pro

Так что спасибо. Я буду благодарен

Karthik_Mahalingam

круто, Уилл пингует тебя через 45 минут.

Aiza Pro

спасибо

Karthik_Mahalingam

опубликуйте также схему таблиц.

Aiza Pro

Конечно

Karthik_Mahalingam

проверьте мое решение.

Aiza Pro

[идентификатор]
,[имя]
Из [автомобиля]. [dbo].[tbl_car]

[carid]
,[imgpath]
,[imgid]
Из [автомобиля]. [dbo].[tbl_img]

Karthik_Mahalingam

ладно

2 Ответов

Рейтинг:
8

NaibedyaKar

Это плохая идея-иметь несколько путей изображений, вставленных в одну строку на btl_car. Количество изображений для каждого автомобиля никогда не будет одинаковым. Поэтому вам лучше создать другую таблицу, содержащую путь к файлу изображения, который должен иметь carid в качестве внешнего ключа.


Aiza Pro

так что спасибо. я создаю новый tbl . теперь вставка картинок в одной записи?

NaibedyaKar

Потрясающе!!!

Рейтинг:
16

Karthik_Mahalingam

попробуй вот так

SqlConnection con = new SqlConnection();
           con.Open();
           SqlCommand cmd = new SqlCommand("insert into tbl_car (name) values (@name); select scope_identity()", con);
           cmd.Parameters.AddWithValue("@name", txt_name.Text);
           cmd.Connection = con;
           SqlDataAdapter da = new SqlDataAdapter(cmd);
           DataTable dt = new DataTable();
           da.Fill(dt);
           int id = Convert.ToInt32(dt.Rows[0][0]);

           cmd.ExecuteNonQuery();
           con.Close();

           foreach (var file in uploader.PostedFiles)
           {
               int length = uploader.PostedFile.ContentLength;
               byte[] pic = new byte[length];
               uploader.PostedFile.InputStream.Read(pic, 0, length);

                   string filename = Path.GetFileName(uploader.PostedFile.FileName);
                   uploader.SaveAs(Server.MapPath("~/Insert/Img/" + filename));
                   string cs = ConfigurationManager.ConnectionStrings["theoneConnectionString"].ToString();
                   SqlConnection con = new SqlConnection(cs);
                   con.Open();
                   SqlCommand cmd1 = new SqlCommand("insert into tbl_img (imgpath,imgid) values (@imgpath,@id)", con);
                   cmd1.Parameters.AddWithValue("@imgpath", "~/Insert/Img/" + filename);
                   cmd1.Parameters.AddWithValue("@id", id);
                   cmd1.Connection = con;
                   cmd1.ExecuteNonQuery();

                   con.Close();

           }


Aiza Pro

так что спасибо...
проблема

Свойство connectionString не инициализировано.

Karthik_Mahalingam

строка cs = ConfigurationManager.ConnectionStrings ["theoneConnectionString"].Метод toString();
SqlConnection con = новый SqlConnection(cs);
Добавьте вот так

Aiza Pro

Строка 63: SqlConnection con = new SqlConnection(cs);
Ошибка сервера в приложении'/'.

Karthik_Mahalingam

Объявите строку подключения

Aiza Pro

спасибо. Только одна из фотографий будет включена в базу данных.
имя ~ / Insert/Img/Linkedin-icon. png
имя ~ / Insert/Img/Linkedin-icon. png

Karthik_Mahalingam

поместите точку останова и проверьте, доступно ли несколько изображений в файле fileupload contrl.

Aiza Pro

спасибо. Только одна из фотографий будет включена в базу данных.
имя ~ / Insert/Img/Linkedin-icon. png
имя ~ / Insert/Img/Linkedin-icon. png

Karthik_Mahalingam

все та же проблема?

Aiza Pro

Да, именно так. Только одно из изображений

Karthik_Mahalingam

в чем состоит граф
загрузчик.PostedFiles

Aiza Pro

Количество выбранных изображений, но только изображение повторяется

Karthik_Mahalingam

версии, которые в asp.net несколько ю через

Aiza Pro

4.5.2

Karthik_Mahalingam

ОК. пост управления fileuplad разметки,
это содержит несколько атрибутов?

Aiza Pro

да,
тест-имя ~/Insert/Img/1.jpg
тест-имя ~/Insert/Img/1.jpg
Выбранная фотография - это всего лишь один знак

Karthik_Mahalingam

попробуй вот так
http://stackoverflow.com/a/18457929

Karthik_Mahalingam

http://www.aspsnippets.com/Articles/Upload-multiple-files-with-ASPNet-45-FileUpload-control-in-Visual-Studio-2012-and-2013.aspx

Aiza Pro

так что спасибо

Karthik_Mahalingam

дайте мне знать, если это не сработает, даст какое-то альтернативное решение.

Aiza Pro

конечно, спасибо

Karthik_Mahalingam

крутой

Aiza Pro

спасибо. Проблема была решена
спасибо. Проблема была решена
только один вопрос
Как я должен фильтровать базу данных по типу идентификатора

Karthik_Mahalingam

приятно слышать.

Karthik_Mahalingam

обратитесь к этому,http://www.w3schools.com/sql/sql_join_inner.asp
если не повезет, тогда возвращайся..
ты должен научиться