Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So lösen Sie den Fehler mit der maximalen Länge (er ist zu lang) in der SQL-Abfrage c#

Der Fehler besagt, dass die Kennung Name ist zu lang; Dies in Kombination mit dem nicht geschlossenen Anführungszeichenfehler bedeutet, dass Sie wahrscheinlich ein Eröffnungszitat verpasst haben. Das heißt, Sie haben Folgendes:

INSERT INTO Foo ( A ) VALUES ( AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')

statt

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

Sie sollten Ihre Abfragen nicht über die Verkettung von Zeichenfolgen erstellen. das ist einer der Gründe. Parametrisierte Abfragen liefern das richtige Angebot für Sie. (Hinweis:Sie müssen keine gespeicherten Prozesse verwenden, um parametrisierte Abfragen zu verwenden.)

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;

usw.