Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

asp.net c# ta MS access veri tabanına veri eklemek (İNSERT)

Konu, 'C#' kısmında Akgooglek tarafından paylaşıldı.

  1. Akgooglek

    Akgooglek Yeni Üye

    Kayıt:
    29 Haziran 2008
    Mesajlar:
    3
    Beğenilen Mesajlar:
    0
    Lütfen yardım
    Tabloma veri ekleyemiyorum aşagida c# kodum nerede yalnışlık bulup düzeltip anlatabilecek bir yardım sever lazım.Üyelerimin bilgilerini girdigi zaman veri tabanıma eklenmiş olması gerek ama gösterdigim yerde hata veriyor nedeni ne acaba ?

    Signup.aspx
    protectedvoid okButton_Click(object sender, EventArgs e)
    {
    barekeldiLabel.Text = "Congratgulations :)";
    string dog_tar=mountDropDownList.SelectedItem.Text +"/"+ dayDropDownList.SelectedItem.Text +"/"+ yearDropDownList.SelectedItem.Text;
    if(konrtol()==true)
    {
    OleDbConnection conn=newOleDbConnection("Provider=Microsoft.jet.OLEDB.4.0; data source="+ Server.MapPath("App_Data\\Database2.mdb"));
    OleDbCommand cmd=newOleDbCommand(" INSERT INTO users(user_name,password,name,surname,city,birthday,user_created_date,mail) VALUES ('"+usernameTextBox.Text+"','" + passwordTextBox.Text+[COLOR=#7f0000]"','" +nameTextBox.Text +[COLOR=#7f0000]"','"+ surnameTextBox.Text+[COLOR=#7f0000]"','"+cityTextBox.Text+[COLOR=#7f0000]"','"+dog_tar +[COLOR=#7f0000]"','"+[COLOR=#007f7f]DateTime.Now.ToShortDateString()+[COLOR=#7f0000]"','"+emailTextBox.Text+[COLOR=#7f0000]"')",conn);
    [COLOR=#0000ff]try
    {
    conn.Open();
    cmd.ExecuteNonQuery(); -----------------Syntex hatasi veriyor neden?
    Login_LinkButton.Visible=[COLOR=#0000ff]true;
    okButton.Visible=[COLOR=#0000ff]false;
    }
    [COLOR=#0000ff]finally
    {
    conn.Close();
    }

    }
    }
    }[/COLOR][/COLOR][/COLOR][/COLOR][/COLOR][/COLOR][/COLOR][/COLOR][/COLOR][/COLOR][/COLOR][/COLOR]
     
  2. Akgooglek

    Akgooglek Yeni Üye

    Kayıt:
    29 Haziran 2008
    Mesajlar:
    3
    Beğenilen Mesajlar:
    0
    yardım edecek yokmu :(((((
    lütfen çok acil bunu yapmam lazım
     
  3. Akgooglek

    Akgooglek Yeni Üye

    Kayıt:
    29 Haziran 2008
    Mesajlar:
    3
    Beğenilen Mesajlar:
    0
    bana burda herşeyin dogru olup olmadigin soyleyecek var mi?
    Çünkü burdaki oledb yani ado.net yazıldıgı insert SQL komutumda puroblem var bilgimin az olması nedeni ile bulamiyorum bana dogru gibi duruyor ama .........

    OleDbConnection conn=newOleDbConnection("Provider=Microsoft.jet.OLEDB.4.0; data source="+ Server.MapPath("App_Data\\Database2.mdb"));
    OleDbCommand cmd=newOleDbCommand(" INSERT INTO users(user_name,password,name,surname,city,birthda y,user_created_date,mail) VALUES ('"+usernameTextBox.Text+"','" + passwordTextBox.Text+"','" +nameTextBox.Text +"','"+ surnameTextBox.Text+"','"+cityTextBox.Text+"','"+dog_tar +"','"+DateTime.Now.ToShortDateString()+"','"+emailTextBox.Text+"')",conn);
     
  4. depones

    depones Üye

    Kayıt:
    25 Eylül 2007
    Mesajlar:
    44
    Beğenilen Mesajlar:
    0
    Merhaba,

    Hata mesajını buraya yazarsanız yardım etmeye çalışayım.

    Kullanım şekli size kalmış ancak ConnectionString'i xxxConnection nesnesinin constructor'ına ve SQL komutunu da xxxCommand nesnesinin constructor'ına geçmek kodun okunabilirliğini benim kanaatimce düşürüyor. Bu değerleri geçebilmeniz için her iki sınıfında property'leri mevcut.

    Çalışma zamanında çeşitli kontroller ile elde edilen değerler önerilen şekli ile SQL komutu içerisine xxxParameter sınıfları aracılıyla eklenir. SQL cümleciğinizi string toplaması ile oluşturma şekliniz SQL Injection'a maruz kalma olasılığınızı artırıyor. Son olarak yazdığınız kod ile ilgili olarak bir şey daha söylemek istiyorum. Bir grup string'i toplamanız mutlaka gerekiyorsa StringBuilder sınıfını kullanmalısınız. Çünkü, her string toplamanızda toplama sonucunda elde edilen değer yeni bir nesnede tutulurken toplama işlemine sokulan string nesneleri garbage collector'a yollanır. Bu da performans kaybına yol açacaktır.

    İyi çalışmalar.
     
  5. arsiya

    arsiya Üye

    Kayıt:
    3 Temmuz 2008
    Mesajlar:
    82
    Beğenilen Mesajlar:
    0
    sanirim tarih formatindan dolayi hata veriyor olabilir. sql cumlesini ms access i acip ordan calistirmayi deneyin eger hata sql cumlesinde degilse hatayi yazdiginiz da yardimci olmaya calisiriz.
     
  6. Rachel

    Rachel Üye

    Kayıt:
    31 Mayıs 2008
    Mesajlar:
    43
    Beğenilen Mesajlar:
    0
    Eğer Doğum tarihi alanı da date time ise Convert.ToDatetime(dog_tar) demen gerekiyor.