Birden fazla image'i birleştirme işlemi
Burada pictureBox kontrolünün image'i ile, pictureLogo kontrolünün imagini, verilen kordinatlar ve ölçülerce birleştirme yapıyoruz. DrawImage bunun için kullanılan fonksiyonumuz.
Örnek Kod:
using (Graphics grfx = Graphics.FromImage(pictureImage.Image))
SqlServer'daki tablolarınıza resim eklemek ve mevcut resimlerden istediğinizi form üzerinde göstermek için mevcut olan yöntemlerden birisi şudur:
Tabloya resim insert etmek için:
byte[] image = File.ReadAllBytes("D:\\foto.jpg");
SqlCommand sqlCommand = new SqlCommand("INSERT INTO ResimTest (resim_id, resim) VALUES (1, @Image)", SqlConnectionBaglantiniz);
sqlCommand.Parameters.AddWithValue("@Image", image);
sqlCommand.ExecuteNonQuery();
Form üzerindeki picture box'a bu resmi yüklemek için ise:
SqlDataAdapter dataAdapter = new SqlDataAdapter(new SqlCommand("SELECT resim FROM ResimTest WHERE resim_id = 1", SqlConnectionBaglantiniz));
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);
if (dataSet.Tables[0].Rows.Count == 1)
{
Byte[] data = new Byte[0];
data = (Byte[])(dataSet.Tables[0].Rows[0]["pic"]);
MemoryStream mem = new MemoryStream(data);
pictureBox1.Image= Image.FromStream(mem);
}
Bu kadar basit :) iyi çalışmalar
--------------------------------------------------------------------------------------------------------
Entity framework'te invalid column name 'columnName' hatası
Merhabalar, Entity framework ile çalışıyor ve bu hatayı alıyorsanız sebebi, foreign key olarak belirlediğiniz bir field'i database'inizden silmiş olmanız ve projede bu f.key'in hala yer ediyor olması. Projede Entity model üzerinden bu f.key'i silmiş olsanız bile malesef bizim göremediğimiz base sınıflarında bu f.key'i hala tutuyor ve bu hatadan kurtulamıyoruz. Çözümü için : Model üzerindeyken sağ tıklayıp "Update Model From DataBase" dedikten sonra ilgili tabloyu/tabloları refresh etmeniz, böylece "base" sınıflardan da bu foreign key'ler silinmiş olacaktır :)
-------------------------------------------------------------------------------
Exclusive access could not be obtained because the database is in use ~ Resolved
Bu hatayı alıyorsanız mesajdan anlayacağınız gibi database'in kullanımda olduğunu gösterir. Mesela "Test" isimli bir veritabanınız var ve varsayılan veritabanı bu yani sql management açıldığınıda bu veritabanı ile başlıyor, dolayısıyla bu veritabanı açık durumda olduğu için üzerinde yapılan işlemlere izin vermez, önce varsayılan veritabanını değiştirmeniz gereklidir. Değiştirdikten sonra tekrar denerseniz sorun düzelmiş olacaktır.
------------------------------------------------------------------------------------------------------------------------
Back up Log cannot be performed because there is no current database backup Hatası
BACKUP LOG komutuyla bir veritabanının Transaction Log yedeğini almaya çalışırken böyle bir hata ile karşılaşabilirsiniz.
Bunun nedeni, bu veritabanının henüz hiç tam yedeğinin (Full Backup) alınmamasıdır. BACKUP LOG ve BACKUP DATABASE ... WITH DIFFERENTIAL komutlarını çalıştırmadan önce bu işlemleri yapmaya çalıştığınız veritabanının tam ydeğini BACKUP DATABASE komutuyla almalısınız.
-------------------------------------------------------------------------------------------------------
"Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints" hatası
Merhabalar, C# uygulamalarında bu hatayı alıyorsanız sebeplerinden bazıları şunlardır:
1- Veritabanında ilgili table'da olan bir field silinmiş ve uygulamada hala aynı field için veri çekilmek isteniyorsa.
2- Veritabanında ilgili table'da, mesela string bir field için nvarchar(50) dediniz, buna göre uygulamada bir dataTable oluşturdunuz, verileri bu dataTable ile çekiyorsunuz, sonra veritabanına döndünüz dediniz ki bu kadar alan bu field için fazla bunu tekrar nchar(10) olarak düzelttiniz. Aynı güncellemeyi dataTable'da da yapmazsanız bu hatayı yine alırsınız. Ya field boyutunu elle ayarlayacaksınız (MaxLength alanını) yada DataTable'ı komple baştan oluşturacaksınız..Burada pictureBox kontrolünün image'i ile, pictureLogo kontrolünün imagini, verilen kordinatlar ve ölçülerce birleştirme yapıyoruz. DrawImage bunun için kullanılan fonksiyonumuz.
Örnek Kod:
using (Graphics grfx = Graphics.FromImage(pictureImage.Image))
{
grfx.DrawImage(pictureLogo.Image, 80, 80,50,50);
}
--------------------------------------------------
PictureBox'taki image'i yazıcıya yollama:
PictureBox üzerindeki image'i direk yazıcıya göndermek için aşağıdaki örnek kodu kullanabilirsiniz, varsayılan yazıcı neyse direk ona çıktıyı yollar: void buttonYazdir_Click(object sender, EventArgs e) { PrintDocument pd = new PrintDocument(); pd.PrintPage += new PrintPageEventHandler(pd_PrintPage); pd.Print(); } void pd_PrintPage(object sender, PrintPageEventArgs e) { System.Drawing.Image image = pictureImage.Image; Point loc = new System.Drawing.Point(100, 100); e.Graphics.DrawImage(image, loc); }
--------------------------------------------------
SQL Server'a resim ekleme ve PictureBox'a yüklemeSqlServer'daki tablolarınıza resim eklemek ve mevcut resimlerden istediğinizi form üzerinde göstermek için mevcut olan yöntemlerden birisi şudur:
Tabloya resim insert etmek için:
byte[] image = File.ReadAllBytes("D:\\foto.jpg");
SqlCommand sqlCommand = new SqlCommand("INSERT INTO ResimTest (resim_id, resim) VALUES (1, @Image)", SqlConnectionBaglantiniz);
sqlCommand.Parameters.AddWithValue("@Image", image);
sqlCommand.ExecuteNonQuery();
Form üzerindeki picture box'a bu resmi yüklemek için ise:
SqlDataAdapter dataAdapter = new SqlDataAdapter(new SqlCommand("SELECT resim FROM ResimTest WHERE resim_id = 1", SqlConnectionBaglantiniz));
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);
if (dataSet.Tables[0].Rows.Count == 1)
{
Byte[] data = new Byte[0];
data = (Byte[])(dataSet.Tables[0].Rows[0]["pic"]);
MemoryStream mem = new MemoryStream(data);
pictureBox1.Image= Image.FromStream(mem);
}
Bu kadar basit :) iyi çalışmalar
--------------------------------------------------------------------------------------------------------
Entity framework'te invalid column name 'columnName' hatası
Merhabalar, Entity framework ile çalışıyor ve bu hatayı alıyorsanız sebebi, foreign key olarak belirlediğiniz bir field'i database'inizden silmiş olmanız ve projede bu f.key'in hala yer ediyor olması. Projede Entity model üzerinden bu f.key'i silmiş olsanız bile malesef bizim göremediğimiz base sınıflarında bu f.key'i hala tutuyor ve bu hatadan kurtulamıyoruz. Çözümü için : Model üzerindeyken sağ tıklayıp "Update Model From DataBase" dedikten sonra ilgili tabloyu/tabloları refresh etmeniz, böylece "base" sınıflardan da bu foreign key'ler silinmiş olacaktır :)
-------------------------------------------------------------------------------
Exclusive access could not be obtained because the database is in use ~ Resolved
Bu hatayı alıyorsanız mesajdan anlayacağınız gibi database'in kullanımda olduğunu gösterir. Mesela "Test" isimli bir veritabanınız var ve varsayılan veritabanı bu yani sql management açıldığınıda bu veritabanı ile başlıyor, dolayısıyla bu veritabanı açık durumda olduğu için üzerinde yapılan işlemlere izin vermez, önce varsayılan veritabanını değiştirmeniz gereklidir. Değiştirdikten sonra tekrar denerseniz sorun düzelmiş olacaktır.
------------------------------------------------------------------------------------------------------------------------
Back up Log cannot be performed because there is no current database backup Hatası
BACKUP LOG komutuyla bir veritabanının Transaction Log yedeğini almaya çalışırken böyle bir hata ile karşılaşabilirsiniz.
Bunun nedeni, bu veritabanının henüz hiç tam yedeğinin (Full Backup) alınmamasıdır. BACKUP LOG ve BACKUP DATABASE ... WITH DIFFERENTIAL komutlarını çalıştırmadan önce bu işlemleri yapmaya çalıştığınız veritabanının tam ydeğini BACKUP DATABASE komutuyla almalısınız.
-------------------------------------------------------------------------------------------------------
"Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints" hatası
Merhabalar, C# uygulamalarında bu hatayı alıyorsanız sebeplerinden bazıları şunlardır:
1- Veritabanında ilgili table'da olan bir field silinmiş ve uygulamada hala aynı field için veri çekilmek isteniyorsa.
iyi çalışmalar :)
-------------------------------------------------------------------------------- C Sharp Server Explorer Data Connections seçeneğinin açılmaması..
"Girişleri güncellerken bir hata oluştu " hatası..
Uygulamanızda bu hatayı alıyorsanız bunun birçok sebebi olabilir ama bendeki hatanın sebebi, Bir tablodaki foreign key'lerden birisinin silinmiş olması. Mesela bir tablonuzdaki foreing key alanına 3 sayısı atıldı ama bağlı tabloda 3 id'li kayıt yok. Bu durumda bu hatayı verir. Yada eğer bağlı tablodaki kayıtlar başka bir tabloda foreign key olarak kullanılmışsa, bu kaydı silmeye çalıştığınızda yine aynı hatayı alırsınız. Ana tablo ve bağlı tablodaki kayıtları kontrol etmeniz lazım :)
-----------------------------------------------------------------------------------------------
* Visual Studio Server Explorer – “The given key was not present in the dictionary” hatası
Bu hatayı alıyorsanız;
C:\Users\Salih\AppData > Roaming > Microsoft > Visual Studio > 10.0 > ServerExplorer >DefaultView.SEView
dosyasını editor ile açıp içinden hatalı bağlantıları silebilirsiniz. Eğer Server Explorer’da çok fazla dosyanız bulunmuyorsa, bu dosyayı komple silip Visual Studio’yu tekrar başlatıığınızda hata düzelicektir.
-----------------------------------------------------------------------------------------------------------------------------
Microsoft SQL Server, Error: 18456 hatası
Sql server da authentication sorunu.
genelde sql server kurulumundan sonra sql serverda bir kullanıcı açıldığında şifre ve kullanıcı adı girmenize rağmen girişi kabul etmez.
Bu durumda önce kullanıcınızın properties status kısmından enabled olup olmadığına bakın.
eğer bu enable ise sql server sunucu üzerinde sağ tuş yapıp properties 'den Security sekmesinden "Sql Server And Windows Authentication Mode" seçilmeli ve ardından "Sql Server Servisleri" yeniden başlatılmalıdır değişikliklerin kayıt edilmesi için.
işte sql server artık hem windows authentication ile hemde sql authentication ile çalışabilir artık.
----------------------------------------------------------------------------------------------------------------------------- TabControl: Aktif Tab'ı bulma:
Birden fazla tabPage içeren bir TabControl'de, aktif Tab'ı bulup ona göre işlem yapmak için bir çok yöntem var, basit 2 tanesi şunlar:
1-) Switch - Case deyimini kullanarak Tab'ın hangisinin aktif olduğunu yakalamak.
void buttonAktifTabBul_Click(object sender, EventArgs e)
{
switch (tabControlDetaylar.SelectedTab.ToString())
{
case "TabPage: {Genel Maliyet}":
MessageBox.Show("Genel Tabdayız");
break;
case "TabPage: {Malzemeler}":
MessageBox.Show("Malzeme Tabındayız");
break;
case "TabPage: {Kumaşlar}":
MessageBox.Show("Kumaslar Tabındayız");
break;
case "TabPage: {İşçilikler}":
MessageBox.Show("Iscilikler Tabındayız");
break;
default:
break;
}
}
2-) İf kontrolü içinde hangi TabPage'deyiz kontrolünü yapmak.
-----------------------------------------------------------------------------------------------------------
Visual Studio'da satır numarası gösterme
Programda, kodların yanında satır numaralarının gösterilmesini istiyorsak, Önce menüden Tools-Options seçeneğini seçip, sol altta bulunan "Show all settings'"i işaretliyoruz, sonra Text Editör-All Languages-Line Numbers'ı aktif yapıyoruz. Bu kadar :)
void buttonYazdir_Click(object sender, EventArgs e)
YanıtlaSil{
PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
pd.Print();
}
void pd_PrintPage(object sender, PrintPageEventArgs e)
{
System.Drawing.Image image = pictureImage.Image;
Point loc = new System.Drawing.Point(100, 100);
e.Graphics.DrawImage(image, loc);
}
kodları Value cannot be null. hatası veriyor yardımcı olabilirmisin