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

Sådan løses den maksimale længdefejl (den er for lang) i sql-forespørgsel c#

Fejlen siger, at identifikatoren navnet er for langt; dette kombineret med fejlen i ulukket anførselstegn betyder, at du sandsynligvis har gået glip af et åbningscitat. Det vil sige, du har denne:

INSERT INTO Foo ( A ) VALUES ( AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')

i stedet for

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

Du bør ikke bygge dine forespørgsler via strengsammenkædning; dette er en af ​​grundene. Parametriserede forespørgsler vil få det rette tilbud til dig. (Bemærk:du behøver ikke at bruge lagrede procs for at bruge parametriserede forespørgsler.)

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;

osv.



  1. Forståelse af beskidt læseproblem med SQL Server

  2. Konverter Python-listen over diktater til Postgresql-array af json

  3. MySQL:et tidsrum, der er tilgængeligt inden for på hinanden følgende tider

  4. SQL-forespørgsel Vælg første række 1 række fra flere rækker/gruppe