Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come risolvere l'errore di lunghezza massima (è troppo lungo) nella query sql c#

L'errore sta dicendo che l'identificatore il nome è troppo lungo; questo, combinato con l'errore tra virgolette non chiuse, significa che probabilmente hai perso una citazione di apertura. Cioè, hai questo:

INSERT INTO Foo ( A ) VALUES ( AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')

invece di

INSERT INTO Foo ( A ) VALUES ( 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')

Non dovresti creare le tue query tramite la concatenazione di stringhe; questo è uno dei motivi. Le query parametrizzate otterranno il preventivo giusto per te. (Nota:non è necessario utilizzare processi archiviati per utilizzare query parametrizzate.)

var sql = "INSERT INTO My_RSS ( Title, Description, Date, Link, Rate, Name )
           VALUES ( @Title, @Desc, @PostDate, @Link, @Rate, @Name )";

SqlCommand cmd = new SqlCommand(sql, Connect());
cmd.Parameters.Add("@Title", SqlDbType.VarChar, 100).Value = RSS_title;
cmd.Parameters.Add("@Desc", SqlDbType.VarChar, 8192).Value = RSS_description;
cmd.Parameters.Add("@PostDate", SqlDbType.SmallDateTime).Value = DateTime.Now;
cmd.Parameters.Add("@Rate", SqlDbType.Int).Value = rate;

ecc.