Setați valoarea parametrului de inserare a SqlDataSource în codul de bare

Am acest cod SqlDataSource în forma mea:


        
            
            
            
            
        
    

Și am această funcție care trebuie să salveze valorile din Buclele de text în primele patru câmpuri și ora curentă în al cincilea câmp:

protected void SaveToDB(object sender, EventArgs e)
{
        SqlDataSource1.InsertParameters["time"].DefaultValue = DateTime.Now.ToString();
        SqlDataSource1.Insert();
}

4 din 5 câmpuri își obțin valorile din unele cutii de text în forma mea. acum problema este ultimul câmp: time pe care nu-l pot seta. Când funcția rulează, vă oferă această eroare:

Detalii excepție: System.Data.SqlClient.SqlException: String sau   datele binare vor fi trunchiate. Instrucțiunea a fost terminată.

Ce ar trebui sa fac?

vă mulțumesc că ați luat timp.

0
@JaneDoe: Da! asta o să facă. în primul rând, vă rugăm să scrieți comentariul dvs. ca răspuns, pentru a putea bifa răspunsul adevărat. tipul de "timp" în db-ul meu a fost char (10), pe care l-am făcut char (Max) și acum este bine. mulțumesc,
adăugat autor Mahyar Kakaee, sursa
DateTime.Now.ToShortDateString (); incearca asta
adăugat autor Thousand, sursa
Terminat! bucuros că aș putea ajuta ^ ^
adăugat autor Thousand, sursa

2 răspunsuri

Ar trebui să puteți utiliza funcția SQL GetDate direct în InsertCommand fără a folosi codul din spate.

InsertCommand="INSERT INTO [contact] ([Name], [phone], [email], [comment], [time]) VALUES (@Name, @phone, @email, @comment, GetDate())"  
0
adăugat

try this:

DateTime.Now.ToShortDateString(); 

"String or binary data would be truncated." usually has to do with fields in databases having a smaller size then what you're trying to put into it.

0
adăugat
mulțumesc din nou omului.
adăugat autor Mahyar Kakaee, sursa