INSERT INTO语句的语法错误

时间:2013-01-25 10:25:21

标签: c# oledbconnection

我在下面的Insert Into语句中遇到语法错误,并且很难找到错误的位置。

帮助非常有用

OleDbConnection myOLEDBConn = new OleDbConnection(ConfigurationManager.AppSettings["conn"]);
        OleDbCommand myOLEDBCmdi;
        //**********************************************************************
        myOLEDBConn.Open();
        myOLEDBCmdi = myOLEDBConn.CreateCommand();
        myOLEDBCmdi.CommandText = @"INSERT INTO tblProducts([Publish_Date], [CODE], [TITLE], [SeriesID], [SeriesModNo], [SubjectID], [ProducersID], [CountryID],[GenSubject],[DVDPriceID],[DVDMasters],[VHSPriceID],[RentalPriceID],[VHSQty],[RUN_TIME],[Target_AudID],[FormatID],[Support_MatID],[StyleID],[GuruID], [Summary])
                                    VALUES(@publishdate, @code, @title, @seriesID, @seriesmodno, @subjectID, @producersID, @countryID, @genSubject, @dvdPrice, @dvdMasters, @vhsPriceId, @rentalPriceId, @vhsQuantity, @runtime, @targetAudId, @formatId, @supportMatId, @styleId, @guruId, @summary";
        myOLEDBCmdi.Parameters.AddRange(new OleDbParameter[]
        {
            new OleDbParameter("@publishdate",lblDate.Text),
            new OleDbParameter("@code", prodCode),
            new OleDbParameter("@title", prodTitle), 
            new OleDbParameter("@seriesID",seriesID),
            new OleDbParameter("@seriesmodno",seriesModNo),
            new OleDbParameter("@subjectID", subjectID),
            new OleDbParameter("@producersID", producerID),
            new OleDbParameter("@countryID",countryID),
            new OleDbParameter("@genSubject", relatedTopics),
            new OleDbParameter("@dvdPrice",dvdPriceID),
            new OleDbParameter("@dvdMasters",dvdMaster),
            new OleDbParameter("@vhsPriceId",vhsPriceID),
            new OleDbParameter("@rentalPriceId", rentalPriceID),
            new OleDbParameter("@vhsQuantity",noOfVHS),
            new OleDbParameter("@runtime",runningTime),
            new OleDbParameter("@targetAudId",targetAudienceID),
            new OleDbParameter("@formatId",formatID),
            new OleDbParameter("@supportMatId",supportMatID),
            new OleDbParameter("@styleId",styleID), 
            new OleDbParameter("@guruId",gurusID),
            new OleDbParameter("@summary",summary),
        });

        myOLEDBCmdi.ExecuteNonQuery();
        myOLEDBConn.Close();

此致

3 个答案:

答案 0 :(得分:3)

您的SQL语句结尾处似乎缺少)

变化:

VALUES(@publishdate, @code, @title, @seriesID, @seriesmodno, @subjectID, @producersID, @countryID, @genSubject, @dvdPrice, @dvdMasters, @vhsPriceId, @rentalPriceId, @vhsQuantity, @runtime, @targetAudId, @formatId, @supportMatId, @styleId, @guruId, @summary";

为:

VALUES(@publishdate, @code, @title, @seriesID, @seriesmodno, @subjectID, @producersID, @countryID, @genSubject, @dvdPrice, @dvdMasters, @vhsPriceId, @rentalPriceId, @vhsQuantity, @runtime, @targetAudId, @formatId, @supportMatId, @styleId, @guruId, @summary)";

答案 1 :(得分:2)

在提供参数后,您缺少“)”括号

myOLEDBCmdi.CommandText = @"INSERT INTO tblProducts([Publish_Date], [CODE], [TITLE], [SeriesID], [SeriesModNo], [SubjectID], [ProducersID], [CountryID],[GenSubject],[DVDPriceID],[DVDMasters],[VHSPriceID],[RentalPriceID],[VHSQty],[RUN_TIME],[Target_AudID],[FormatID],[Support_MatID],[StyleID],[GuruID], [Summary])
                                VALUES(@publishdate, @code, @title, @seriesID, @seriesmodno, @subjectID, @producersID, @countryID, @genSubject, @dvdPrice, @dvdMasters, @vhsPriceId, @rentalPriceId, @vhsQuantity, @runtime, @targetAudId, @formatId, @supportMatId, @styleId, @guruId, @summary)";

答案 2 :(得分:1)

INSERT语句中没有结束括号。

编辑:括号=>括号