skip to Main Content

I Have been looking at this for 2 hours where is this incorrect syntax!?

Here is the line the error happens
https://i.stack.imgur.com/08tGY.png

public static class InvestorProcessor
    {
        public static int CreateInvestment(int id, string tickerSymbol, Sale transactionType, string companyName, int quantity, int sharePrice)
        {
            Investor data = new Investor

            {
                Id = id,
                TickerSymbol = tickerSymbol,
                TransactionType = transactionType,
                CompanyName = companyName,
                Quantity = quantity,
                SharePrice = sharePrice

            };


        string sql = @"insert into DB.Transaction (TickerSymbol, TransactionType, CompanyName, Quantity, SharePrice)
                     values (@TickerSymbol, @TransactionType, @CompanyName, @Quantity, @SharePrice);";

            return SqlDataAccess.SaveData(sql, data);

        }

        public static List<Investor> LoadInvestors()
        {
            string sql = @"select Id, TickerSymbol, TransactionType, CompanyName, Quantity, SharePrice
                           from DB.Transaction;";
            return SqlDataAccess.LoadData<Investor>(sql);
        }
    }
} 

2

Answers


  1. You should try without DB. and check data types:

     string sql = @"insert into Transaction (TickerSymbol, TransactionType, CompanyName, Quantity, SharePrice)
                    values (@TickerSymbol, @TransactionType, @CompanyName, @Quantity, @SharePrice);";
    

    If the error persists, try to take the query into SQL Server Management Studio. You have more details there.

    Login or Signup to reply.
  2. TRANSACTION is a T-SQL reserved keyword. If you want to have it as an object name (and generally you should avoid using reserved keywords as object names), as the docs say (my emphasis):

    Although it is syntactically possible to use SQL Server reserved keywords as identifiers and object names in Transact-SQL scripts, you can do this only by using delimited identifiers.

    This fails, with the same error you are getting:

    create table transaction ( id int )
    

    this succeeds:

    create table [transaction] ( id int )
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search