public static void VeritabaniIdIleGuncelle(this object dbClass) { List <string> kolonlarVeDegerleri = new List <string>(); Type dbClassType = dbClass.GetType(); //Type cinsine cevirelim DbTablo DbTablo = (DbTablo)Attribute.GetCustomAttribute(dbClassType, typeof(DbTablo)); // verilen type icin atrribute fonsiyonuna ulastik string tabloAdi = DbTablo.TabloAd; //attribute sinifinin verilerine ulasabildik string id = null; FieldInfo[] kolonAlanlari = dbClassType.GetFields(BindingFlags.Public | BindingFlags.Instance); //classin property'lerine ulastik try { foreach (FieldInfo kolonAlani in kolonAlanlari) { //kolonAdi degeri bos olmamali yoksa hata verecektir. Her alan bosta olsa gonderilmelidir. DbKolon DbKolon = (DbKolon)Attribute.GetCustomAttribute(kolonAlani, typeof(DbKolon)); //Her property'nin attribute'una gidip kolon adini aldik. if (DbKolon.KolonAd != "ID") //Id otomatik veritabaninda atanacak insert tipinde eklemeyelim. { object kolonDegeri = kolonAlani.GetValue(dbClass); if (kolonDegeri != null) { string kolonVeDegeri = DbKolon.KolonAd + " = '" + kolonDegeri.ToString() + "' "; kolonlarVeDegerleri.Add(kolonVeDegeri); } } else { id = kolonAlani.GetValue(dbClass).ToString(); if (id == "0") { throw new Exception("Lütfen geçerli bir Id değeri giriniz."); } } } //sql sorgusunu olusturduk. string update = "UPDATE "; //tabloAdi; string guncellenecekVeriler = string.Join(",", kolonlarVeDegerleri.ToArray()); string sql = update + tabloAdi + " SET " + guncellenecekVeriler + "WHERE ID = '" + id + "'"; Console.WriteLine(sql); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
public static void VeritabaninaKaydet(this object dbClass) { List <string> columnNames = new List <string>(); List <string> values = new List <string>(); Type dbClassType = dbClass.GetType(); //Type cinsine cevirelim DbTablo DbTablo = (DbTablo)Attribute.GetCustomAttribute(dbClassType, typeof(DbTablo)); // verilen type icin atrribute fonsiyonuna ulastik string tabloAdi = DbTablo.TabloAd + " "; //attribute sinifinin verilerine ulasabildik FieldInfo[] kolonAlanlari = dbClassType.GetFields(BindingFlags.Public | BindingFlags.Instance); //classin property'lerine ulastik try { foreach (FieldInfo kolonAlani in kolonAlanlari) { //kolonAdi degeri bos olmamali yoksa hata verecektir. Her alan bosta olsa gonderilmelidir. DbKolon DbKolon = (DbKolon)Attribute.GetCustomAttribute(kolonAlani, typeof(DbKolon)); //Her property'nin attribute'una gidip kolon adini aldik. if (DbKolon.KolonAd != "ID") //Id otomatik veritabaninda atanacak insert tipinde eklemeyelim. { object kolonDegeri = kolonAlani.GetValue(dbClass); if (kolonDegeri != null) { columnNames.Add(DbKolon.KolonAd); values.Add("'" + kolonDegeri.ToString() + "'"); //Her property'nin runtime degerine ulastik } } } //sql sorgusunu olusturduk. string insert = "INSERT INTO "; string columnSet = string.Join(",", columnNames.ToArray()); string valueSet = string.Join(",", values.ToArray()); string sql = insert + tabloAdi + "(" + columnSet + ")" + " VALUES " + "(" + valueSet + ")"; Console.WriteLine(sql); } catch (Exception ex) { Console.WriteLine(columnNames[columnNames.Count - 1] + " alanı eklenmemiş!"); } }
public static void VeritabanindanVeriArayan(this object dbClass) { List <string> kolonlarVeDegerleri = new List <string>(); Type dbClassType = dbClass.GetType(); //Type cinsine cevirelim DbTablo DbTablo = (DbTablo)Attribute.GetCustomAttribute(dbClassType, typeof(DbTablo)); // verilen type icin atrribute fonsiyonuna ulastik string tabloAdi = DbTablo.TabloAd; //attribute sinifinin verilerine ulasabildik FieldInfo[] kolonAlanlari = dbClassType.GetFields(BindingFlags.Public | BindingFlags.Instance); //classin property'lerine ulastik try { foreach (FieldInfo kolonAlani in kolonAlanlari) { //kolonAdi degeri bos olmamali yoksa hata verecektir. Her alan bosta olsa gonderilmelidir. DbKolon DbKolon = (DbKolon)Attribute.GetCustomAttribute(kolonAlani, typeof(DbKolon)); //Her property'nin attribute'una gidip kolon adini aldik. object kolonDegeri = kolonAlani.GetValue(dbClass); if (kolonDegeri != null) { string kolonVeDegeri = DbKolon.KolonAd + " = '" + kolonDegeri.ToString() + "' "; kolonlarVeDegerleri.Add(kolonVeDegeri); } } //sql sorgusunu olusturduk. string select = "SELECT * FROM "; //tabloAdi; string guncellenecekVeriler = string.Join(",", kolonlarVeDegerleri.ToArray()); string sql = select + tabloAdi + " WHERE " + guncellenecekVeriler; Console.WriteLine(sql); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
public static void VeritabanindanSil(this object dbClass) { Type dbClassType = dbClass.GetType(); DbTablo DbTablo = (DbTablo)Attribute.GetCustomAttribute(dbClassType, typeof(DbTablo)); string tabloAdi = DbTablo.TabloAd; string id = null; FieldInfo[] kolonAlanlari = dbClassType.GetFields(BindingFlags.Public | BindingFlags.Instance); try { foreach (FieldInfo kolonAlani in kolonAlanlari) { //kolonAdi degeri bos olmamali yoksa hata verecektir. Her alan bosta olsa gonderilmelidir. DbKolon DbKolon = (DbKolon)Attribute.GetCustomAttribute(kolonAlani, typeof(DbKolon)); //Her property'nin attribute'una gidip kolon adini aldik. if (DbKolon.KolonAd == "ID") //Id otomatik veritabaninda atanacak insert tipinde eklemeyelim. { id = kolonAlani.GetValue(dbClass).ToString(); if (id == "0") { throw new Exception(); } break; } } //sql sorgusunu olusturduk. string delete = "DELETE FROM "; string sql = delete + tabloAdi + " WHERE ID=" + id; Console.WriteLine(sql); } catch (Exception ex) { Console.WriteLine("ID alani boş bırakılamaz! "); } }