En iyi yanıtlayıcılar
sql server toplu resim güncelle!!

Soru
-
Merhaba ; aşağıda veri tablosuna toplu resim yüklemek istiyorum.
==== ====== ========= ======== ======
IND STOK NO MALIN CİNSİ STOKKODU RESIM
==== ====== ========= ======== ======
121 125 ONA AYÇİÇEK 2 LT 8690566100164 ??
Resimlerin tümüne STOKKODU numarasını verirsem bunları bir klasörün içinden, toplu bir halde resim güncelleme ve update yapabilirmiyim. (ürün resmi çoktur) örneklerle yadımcı olabilirmisiniz.saygılar.
Yanıtlar
-
Yaparsiniz herhalde de, veri tablosu ne demek? MS SQL Server mi, postgreSQL mi, MySQL mi, MongoDb mi ... 250 uzerinde ihtimal var.
StokKodu unique, stokkodu sadece rakamlardan oluyor, veri tablosunun adi Stok, veritabanı MS SQL Server resim alanı varbinary(MAX), resimler c:\resimler klasöründe (hepsi ornegin .PNG) ... ise:
void Main() { var sqlcn = @"server=.\SQLExpress;Trusted_connection=yes;Database=DbAd"; var path = @"c:\resimler"; var pics = Directory.GetFiles(path, "*.PNG", SearchOption.TopDirectoryOnly) .Select(f => Path.GetFileNameWithoutExtension(f)); var tbl = new DataTable(); new SqlDataAdapter("select StokKodu from Stok", sqlcn).Fill(tbl); var matches = tbl.AsEnumerable() .Where(t => pics.Contains(t.Field<string>("StokKodu"))) .Select(t => t.Field<string>("StokKodu")) .ToList(); using (SqlConnection cn = new SqlConnection(sqlcn)) using (SqlCommand cmd = new SqlCommand(@"Update stok set resim = @resim where stokKodu = @stokKodu", cn)) { cmd.Parameters.Add("@resim", SqlDbType.VarBinary); cmd.Parameters.Add("@stokKodu", SqlDbType.VarChar); cn.Open(); foreach (var m in matches) { var filename = Path.Combine(path, Path.ChangeExtension(m, "PNG")); cmd.Parameters["@resim"].Value = File.ReadAllBytes(filename); cmd.Parameters["@stokKodu"].Value = m; cmd.ExecuteNonQuery(); } cn.Close(); } }
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.- Yanıt Olarak Öneren Kyamuran SalibryamMicrosoft contingent staff, Moderator 23 Mart 2020 Pazartesi 15:50
- Yanıt Olarak İşaretleyen CetinBasozEditor 24 Mart 2020 Salı 12:40
Tüm Yanıtlar
-
selamlar, seve seve yardımcı oluruz tabiki :) ama öncesinde senin bize yardım etmen gerekecek. Veri tabanı ne kullanıyorsun. Uygulaman masaüstü, webform, .net mvc, .core mvc ? verileri ne ile çekiyorsun ADO ? EF ?
tam ne kullanıyorsun
bunlar hakkında tam detay verebilirsen destek olabiliriz
-
Yaparsiniz herhalde de, veri tablosu ne demek? MS SQL Server mi, postgreSQL mi, MySQL mi, MongoDb mi ... 250 uzerinde ihtimal var.
StokKodu unique, stokkodu sadece rakamlardan oluyor, veri tablosunun adi Stok, veritabanı MS SQL Server resim alanı varbinary(MAX), resimler c:\resimler klasöründe (hepsi ornegin .PNG) ... ise:
void Main() { var sqlcn = @"server=.\SQLExpress;Trusted_connection=yes;Database=DbAd"; var path = @"c:\resimler"; var pics = Directory.GetFiles(path, "*.PNG", SearchOption.TopDirectoryOnly) .Select(f => Path.GetFileNameWithoutExtension(f)); var tbl = new DataTable(); new SqlDataAdapter("select StokKodu from Stok", sqlcn).Fill(tbl); var matches = tbl.AsEnumerable() .Where(t => pics.Contains(t.Field<string>("StokKodu"))) .Select(t => t.Field<string>("StokKodu")) .ToList(); using (SqlConnection cn = new SqlConnection(sqlcn)) using (SqlCommand cmd = new SqlCommand(@"Update stok set resim = @resim where stokKodu = @stokKodu", cn)) { cmd.Parameters.Add("@resim", SqlDbType.VarBinary); cmd.Parameters.Add("@stokKodu", SqlDbType.VarChar); cn.Open(); foreach (var m in matches) { var filename = Path.Combine(path, Path.ChangeExtension(m, "PNG")); cmd.Parameters["@resim"].Value = File.ReadAllBytes(filename); cmd.Parameters["@stokKodu"].Value = m; cmd.ExecuteNonQuery(); } cn.Close(); } }
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.- Yanıt Olarak Öneren Kyamuran SalibryamMicrosoft contingent staff, Moderator 23 Mart 2020 Pazartesi 15:50
- Yanıt Olarak İşaretleyen CetinBasozEditor 24 Mart 2020 Salı 12:40
-
-
-
Yukaridaki kod da, dediğim gibi, MS SQL Server.
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop. -
Çetin bey ;
ANA DATA= ETİCARET
KULLANICI ADI:Sa
ŞİFRE : 1453
ANA TABLO BU ; dbo.F0103TBLSTOKLAR bu tabloya bağlı alanlarda aşağıdaki gibidir.
==== ====== ========= ======== ======
IND STOK NO MALIN CİNSİ STOKKODU RESIM
==== ====== ========= ======== ======
121 125 ONA AYÇİÇEK 2 LT 8690566100164 ??
Bu tablo ve datalara göre kodlarımızı yani ana datayı ANA DATA= ETİCARET nereye? KULLANICI ADI:Sa nereye?
ŞİFRE : 1453nereye? ana tablo adı = dbo.F0103TBLSTOKLAR nereye , verdiğiniz kodların içine ne şekilde yerleştirmemiz lazım, size çok teşekkürlerimi sunarım.esenlikle kalın saygılar efendim.
-
Çetin bey ;
ANA DATA= ETİCARET
KULLANICI ADI:Sa
ŞİFRE : 1453
ANA TABLO BU ; dbo.F0103TBLSTOKLAR bu tabloya bağlı alanlarda aşağıdaki gibidir.
==== ====== ========= ======== ======
IND STOK NO MALIN CİNSİ STOKKODU RESIM
==== ====== ========= ======== ======
121 125 ONA AYÇİÇEK 2 LT 8690566100164 ??
Bu tablo ve datalara göre kodlarımızı yani ana datayı ANA DATA= ETİCARET nereye? KULLANICI ADI:Sa nereye?
ŞİFRE : 1453nereye? ana tablo adı = dbo.F0103TBLSTOKLAR nereye , verdiğiniz kodların içine ne şekilde yerleştirmemiz lazım, size çok teşekkürlerimi sunarım.esenlikle kalın saygılar efendim.
Bunu soruyorsanız bence o veritabanına dokunmayınız. Veriyi kaybetmeniz an meselesi gibi geliyor.
ANA DATA=ETICARET ne demek bilmiyorum. Database adi ETICARET demek istiyorsanız;
var sqlcn = @"server=.\SQLExpress;Database=ETICARET;uid-sa;pwd=1453";
Stok yerine de dbo.F0103TBLSTOKLAR.
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop. -
:)) Cengiz bey sıkıntı yok :)) datayı yedekleyip yapcam.
Database=ETİCARET / Sa / 1453 (OK)
Stok (tabloADI) =dbo.F0103TBLSTOKLAR. (OK)
TABLONUN İÇİNDEKİ ALAN ADLARI OLDUĞU GİBİ ŞÖYLE
KOLON ADI 1= IND (OK)
KOLON ADI 2= STOKNO (OK)
KOLON ADI 3= MALINCINSI (OK)
KOLON ADI 4= STOKKODU (OK)
KOLON ADI 5= RESIM (OK)
SANIRIM ŞU HALİYE SİZİN VERDİĞİNİZ KODLAR BANA UYACAK. :))
void Main()
{
var sqlcn = @"server=.\SQLExpress;Database=ETICARET;uid-sa;pwd=1453";
var path = @"c:\resimler";
var pics = Directory.GetFiles(path, "*.PNG", SearchOption.TopDirectoryOnly)
.Select(f => Path.GetFileNameWithoutExtension(f));
var tbl = new DataTable();
new SqlDataAdapter("select STOKKODU from F0103TBLSTOKLAR", sqlcn).Fill(tbl);
var matches = tbl.AsEnumerable()
.Where(t => pics.Contains(t.Field<string>("STOKKODU")))
.Select(t => t.Field<string>("STOKKODU"))
.ToList();
using (SqlConnection cn = new SqlConnection(sqlcn))
using (SqlCommand cmd = new SqlCommand(@"Update F0103TBLSTOKLAR
set RESIM = @RESIM
where STOKKODU = @STOKKODU", cn))
{
cmd.Parameters.Add("@RESIM", SqlDbType.VarBinary);
cmd.Parameters.Add("@STOKKODU", SqlDbType.VarChar);
cn.Open();
foreach (var m in matches)
{
var filename = Path.Combine(path, Path.ChangeExtension(m, "PNG"));
cmd.Parameters["@RESIM"].Value = File.ReadAllBytes(filename);
cmd.Parameters["@STOKKODU"].Value = m;
cmd.ExecuteNonQuery();
}
cn.Close();
}
} -
Resim alanı varbinary(MAX) ise benim verdigim kod olur, Cengiz bey'in verdigi kodu bilemem.
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop. -
Pardon Çetin Bey , diyeceğim yere yanlış yazmışım özürdilerim sizin verdiğiniz kodlara göre çetin bey
kolon isimlerini benim datamda ,karakterler nasılsa olduğu gibi yazcam onu teyit etmek içindi yani;
kolon isimlerim ; IND , STOKNO , MALINCINSI , STOKKODU , RESIM bunlar datamda böyle yazmaktadır.
sizin verdiğiniz kodlara göre eşleştirerek , düzgün olup olmadığını teyit etmek için yazmıştım.
-
-
Kodu nereye yazdınız? Line 5, Line 12'de hata vermis ama degil 12, 5 satir bile yok ki.
Anydesk id verin bakalım en iyisi.
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop.- Yanıt Olarak İşaretleyen muharrem yılancı 23 Mart 2020 Pazartesi 17:13
- Yanıt İşaretini Geri Alan muharrem yılancı 23 Mart 2020 Pazartesi 17:13
- Yanıt Olarak İşaretleyen muharrem yılancı 23 Mart 2020 Pazartesi 17:14
- Yanıt İşaretini Geri Alan muharrem yılancı 23 Mart 2020 Pazartesi 17:14
-
-
any desk id veriyor musunuz, vermiyor musunuz? 2 dk daha bekleyeyim.
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop. -
- Düzenleyen muharrem yılancı 23 Mart 2020 Pazartesi 18:51 düzeltildi
-
-
-
Soruyu C# formunda sormadıniz mi :) C# biliyorsunuz sanmiştim.
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop. -
Evet Çetin bey ; resimde de görüldüğü üzere F0103TBLSTOKLAR tablosunda bulunan tüm ürünlerin KOLON adı RESIM olan kolona resim atarak güncellemek ve yüklemek istiyorum :)) sizin gibi üstadlardan bişeyler öğrenmeye çalışacağız :))
- Düzenleyen muharrem yılancı 23 Mart 2020 Pazartesi 18:21 düzeltildi
-
Yukarida C# kodunu verdim. Yapamıyorsanız Anydesk ID verin. 5 dk bekleyeceğim.
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop. -
720 062 396
ekrandayım müsaitseniz :)) çetin bey yarın müsait olurmusunuz burdan yazarmısınız saygılar
- Düzenleyen muharrem yılancı 23 Mart 2020 Pazartesi 19:26 düzeltme
-
-
selamlar, burdaysanız bende destek olabilirim :)
Hallettik :) Senin klavye avantajın olurdu, keske onceden görseydim (ben Ctrl+C, V, KC ... olmadan calismak zorunda kalıyorum, Mouse happy :)
How to create a Minimal, Reproducible Example
The way to Go.
World's most advanced open source (object-) relational Database.
Flutter (for mobile, for web & desktop. -
-