sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man löser det maximala längdfelet (det är för långt) i sql-frågan c#

Felet säger att identifieraren namnet är för långt; detta i kombination med felet med citattecken betyder att du förmodligen har missat ett inledande citat. Det vill säga, du har detta:

INSERT INTO Foo ( A ) VALUES ( AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')

istället för

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

Du bör inte bygga dina frågor via strängkonkatentering; detta är en av anledningarna. Parameteriserade frågor kommer att få offerten rätt för dig. (Obs:du behöver inte använda lagrade processer för att använda parametriserade frågor.)

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;

etc.



  1. Hur man subtraherar privilegier i MySQL

  2. Välj dynamiskt kolumn i SQL-frågan

  3. POSTGIS:hitta alla punkter inom en polygon

  4. Laravel 4 kan inte köra hela RAW-frågor