Konuyu görüntüle
IUCODERS FORUM > Programlama > .NET > asp.net & sql hata: unclosed quotation mark after the character string 'stnewsdescription = abc'.
Yazar
sevecen


avatar
adana istanbul
Kayıt: 08.02.2006
21.02.2007-12:51 #17176
arkadaşlar güncellemek istediğim veride güncelleme yapamıyorum. bu hata ile ilgili bir fikriniz var mı?

Unclosed quotation mark after the character string 'StNewsDescription = abc'.

fikir vermesi açısından kodları yazıyorum:
int newsid = Convert.ToInt32(Request.QueryString.Get("ID"));
sqlconn.Open();
cmdguncelle.Connection = sqlconn;

cmdguncelle.CommandText = "Update TbNews SET InNewsId = " + newsid + "'" +
"StNewsName = " + TextBox1.Text + "','" +
"StNewsSummary = " + TextBox2.Text + "','" +
"StNewsDescription = " + TextBox3.Text;

cmdguncelle.ExecuteNonQuery();


news id veri tabanındaki primary key e karşılık geliyor. bu arada db'de Identity specification yes.
stnewsdescriptionın tipi: nvarchar (MAX).

ilginize şimdiden teşekkürler.

bir de bu hata var: Object reference not set to an instance of an object. (daha önce karşılamış ve çözmüştüm başka projede ama şimdi ne yapacağımı bilmiyorum.





bize ruyalarimizin degil uyanikligimizin tabiri gerek (Alinti)





Yazar
aliprinter


avatar
İstanbul
Kayıt: 12.02.2006
21.02.2007-15:23 #17180
Bir de parametreli sorgu kullanarak dene istersen (Belki textbox içerisindeki bir değer single-quotes içerebilir). Aşağıdaki gibi:

int newsid = Convert.ToInt32(Request.QueryString.Get("ID")); 

string strUpdate = "UPDATE TbNews SET StNewsName= @StNewsName ,  StNewsSummary = @StNewsSummary , StNewsDescription= @StNewsDescription WHERE InNewsId = @InNewsId";

SqlConnection sqlconn = new SqlConnection(...);
SqlCommand cmdguncelle = new SqlCommand(strUpdate, sqlconn);

cmdguncelle.Parameters.AddWithValue( "@StNewsName", TextBox1.Text );
cmdguncelle.Parameters.AddWithValue( "@StNewsSummary", TextBox2.Text );
cmdguncelle.Parameters.AddWithValue( "@StNewsDescription", TextBox3.Text );
cmdguncelle.Parameters.AddWithValue( "@InNewsId", newsid );

try
{
cmdguncelle.Connection.Open();
cmdguncelle.ExecuteNonQuery();
}
catch (SqlException ex)
{
// Hatalar (ErrorLabel.Text = "Error: " + ex.Message;)

}
finally
{
cmdguncelle.Connection.Close();
}






Yazar
timur


avatar
İstanbul
Kayıt: 19.01.2006
21.02.2007-15:39 #17181
"Object reference not set to an instance of an object" hatasının sebebi, bir nesnenin referansını oluşturmuşsundur, fakat o nesneyi yaratmamışsındır. Veya herhangi bir yerde o nesne null oluyordur. Hangi nesnede o hatayı alıyorsan o nesneye dikkat et, null geliyordur. Bana sorarsan debug yap ve o nesneyi izle. İyi çalışmalar...





Hayat varsa umut vard?r...
www.timureroglu.com

Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
21.02.2007-16:21 #17182
sql inde hata var. tek tırnaklar düzgün kapanmamış.





N/A
Yazar
cantur


avatar
Rize
admin
Kayıt: 16.01.2006
21.02.2007-18:34 #17187
son textbox tan sonra tırnak kapatman gerek sanki.
"StNewsDescription = " + TextBox3.Text + "' ";

Yanlız bu şekilde yazdığın kod kullanıcı tırnak karakteri girerse textboxına patlar hatta daha tehlikeli şeyler de olabilir.

Stored procedure kullanabiliyorsan kullan . veya kullanıcıyı kısıtlamayı unutma :)

kolay gelsin.






Yazar
cantur


avatar
Rize
admin
Kayıt: 16.01.2006
21.02.2007-18:38 #17188
Object reference not set to an instance of an object.

Bu hata bir ekoldur. Yazdığım her 200 satır kodda bir bu hatayı kesin görürüm. :)

Bu hatayı alma nedenin bir değişkenin içerisinde veri yokken onu kullanmaya kalkmandandır.

Watchla çok rahat değişkeni bulabilirsin.





Yazar
tarikkranda


avatar

Kayıt: 07.01.2006
22.02.2007-00:32 #17211
Her textboxtan once sorgunuzda parametre olacarak gececeginiz degerler string (yani sql tarafinda varchar, char, nchar, nvarchar gibi) tipindeyse o zaman = isaretinden sonra bir tek tırnak kullanman gerekmektedir. Sizin ilk bakista 6 adet tirnak hatanizi gordum smile

cmdguncelle.CommandText = "Update TbNews SET InNewsId = '" + newsid + "'" +
"StNewsName = '" + TextBox1.Text + "'," +
"StNewsSummary = '" + TextBox2.Text + "'," +
"StNewsDescription = '" + TextBox3.Text +"'";

Bir de su yukaridakini denermisiniz. Gozlerim bozuldubiggrin

Ayrica diger object reference not to set an instance of an object hatasini aliyorsaniz uygulamanizda bir degisken degil bir referens tanimlamissiniz. Bu referans ise bellekte herhangi bir nesne ile iliskilendirilmediginden ya da iliskilendirilen bu nesne bir sekilde sonlandirilmis ise siz buna yeniden erismeye calisirsaniz bu exception ı alırsınız.

Orn;
Userin bir class oldugunu dusunun;

User u;
u.GetHashCode();

u burada henuz bellekte bir nesne ile iliskilendirilmemis bir referansi teskil etmektedir.

Kolay gelsin...





Yazar
sevecen


avatar
adana istanbul
Kayıt: 08.02.2006
22.02.2007-14:51 #17221
teşekkürler.





bize ruyalarimizin degil uyanikligimizin tabiri gerek (Alinti)





Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb