c#
2016-04-13 3 views 1 likes 
1

Я испытываю ошибку в adp.Fill (ds, "Products"); . ГоворяОшибка набора данных в C#

«Неправильный синтаксис около '='

Как я могу решить

Вот мои коды:

private void GetRecords(string productID) 
{ 
    using (SqlConnection connection = new SqlConnection(connectionString)) 
    { 
     connection.Open(); 
     string cmdstr = "SELECT ProductID, ProductName, CategoryCode, PurchasePrice, " + 
         "SellingPrice, Description, Quantity, ProdStatusCode FROM Products" + 
         "WHERE ProductID = " + productID; 

     SqlCommand cmd = new SqlCommand(cmdstr, connection); 
     SqlDataAdapter adp = new SqlDataAdapter(cmd); 
     adp.Fill(ds, "Products"); 
    } 
} 

ответ

2

Вы синтаксическую ошибку там:

Быстрое исправление:

string cmdstr = "SELECT ProductID, ProductName, CategoryCode, PurchasePrice, " + 
       " SellingPrice, Description, Quantity, ProdStatusCode FROM Products" + 
       " WHERE ProductID = '" + productID + "'" 

Смарт фикс:

Данный код будет открывает широкую дверь для sqlInjection. поэтому вместо этого вы предпочитаете использовать параметризованные запросы:

string cmdstr = "SELECT ProductID, ProductName, CategoryCode, PurchasePrice, " + 
       " SellingPrice, Description, Quantity, ProdStatusCode FROM Products" + 
       " WHERE ProductID [email protected]" 
SqlCommand cmd = new SqlCommand(cmdstr, connection); 
cmd.Parameters.Add("@productID", SqlDbType.VarChar).Value = productID; 
SqlDataAdapter adp = new SqlDataAdapter(cmd); 
adp.Fill(ds, "Products"); 
+0

ошибка повторится, когда я запустил программу, которую вы предложили. – user6196292

+0

как я знаю, если вы скажете какую-то ошибку? –

+0

он говорит ту же ошибку, что и «Неправильный синтаксис рядом с = =». – user6196292

Смежные вопросы