SqlException : Incorrect syntax near '1'












-1















I am currently trying to implement SQL into a project with Unity3D. So far, I was able to do "normal" UPDATE, ADD, DELETE, DROP, ALTER, INSERT".



Trying to go a step further, I am trying to insert prepared statements, using this link as a guide



Here is my code :



SqlConnection sqlConnection = new SqlConnection(Connection.connectionString)
sqlConnection.Open();

SqlCommand cmd = new SqlCommand(null, sqlConnection);
cmd.CommandText = "INSERT INTO IngredientTypes (Name) VALUES (@name)";

SqlParameter nameParam = new SqlParameter("@name", SqlDbType.Text, 155);
nameParam.Value = Name;
cmd.Parameters.Add(nameParam);

cmd.Prepare();
cmd.ExecuteNonQuery();


My table looks like so :



CREATE TABLE IngredientTypes
(
IngredientTypeID INT IDENTITY(1,1) PRIMARY KEY,
Name VARCHAR(155)
);


I get this error :




SQLException : Incorrect systax near '1'.



System.Data.SqlClient.SqlConnection.ErrorHandler (System.Object sender, Mono.Data.Tds. Protocol.TdsInternalErrorMessageEventArgs e)




Help please? Thank you in advance.. I can't find where I did wrong.










share|improve this question




















  • 1





    What is your Name variable set to?

    – Gabriel Luci
    Nov 17 '18 at 4:02
















-1















I am currently trying to implement SQL into a project with Unity3D. So far, I was able to do "normal" UPDATE, ADD, DELETE, DROP, ALTER, INSERT".



Trying to go a step further, I am trying to insert prepared statements, using this link as a guide



Here is my code :



SqlConnection sqlConnection = new SqlConnection(Connection.connectionString)
sqlConnection.Open();

SqlCommand cmd = new SqlCommand(null, sqlConnection);
cmd.CommandText = "INSERT INTO IngredientTypes (Name) VALUES (@name)";

SqlParameter nameParam = new SqlParameter("@name", SqlDbType.Text, 155);
nameParam.Value = Name;
cmd.Parameters.Add(nameParam);

cmd.Prepare();
cmd.ExecuteNonQuery();


My table looks like so :



CREATE TABLE IngredientTypes
(
IngredientTypeID INT IDENTITY(1,1) PRIMARY KEY,
Name VARCHAR(155)
);


I get this error :




SQLException : Incorrect systax near '1'.



System.Data.SqlClient.SqlConnection.ErrorHandler (System.Object sender, Mono.Data.Tds. Protocol.TdsInternalErrorMessageEventArgs e)




Help please? Thank you in advance.. I can't find where I did wrong.










share|improve this question




















  • 1





    What is your Name variable set to?

    – Gabriel Luci
    Nov 17 '18 at 4:02














-1












-1








-1








I am currently trying to implement SQL into a project with Unity3D. So far, I was able to do "normal" UPDATE, ADD, DELETE, DROP, ALTER, INSERT".



Trying to go a step further, I am trying to insert prepared statements, using this link as a guide



Here is my code :



SqlConnection sqlConnection = new SqlConnection(Connection.connectionString)
sqlConnection.Open();

SqlCommand cmd = new SqlCommand(null, sqlConnection);
cmd.CommandText = "INSERT INTO IngredientTypes (Name) VALUES (@name)";

SqlParameter nameParam = new SqlParameter("@name", SqlDbType.Text, 155);
nameParam.Value = Name;
cmd.Parameters.Add(nameParam);

cmd.Prepare();
cmd.ExecuteNonQuery();


My table looks like so :



CREATE TABLE IngredientTypes
(
IngredientTypeID INT IDENTITY(1,1) PRIMARY KEY,
Name VARCHAR(155)
);


I get this error :




SQLException : Incorrect systax near '1'.



System.Data.SqlClient.SqlConnection.ErrorHandler (System.Object sender, Mono.Data.Tds. Protocol.TdsInternalErrorMessageEventArgs e)




Help please? Thank you in advance.. I can't find where I did wrong.










share|improve this question
















I am currently trying to implement SQL into a project with Unity3D. So far, I was able to do "normal" UPDATE, ADD, DELETE, DROP, ALTER, INSERT".



Trying to go a step further, I am trying to insert prepared statements, using this link as a guide



Here is my code :



SqlConnection sqlConnection = new SqlConnection(Connection.connectionString)
sqlConnection.Open();

SqlCommand cmd = new SqlCommand(null, sqlConnection);
cmd.CommandText = "INSERT INTO IngredientTypes (Name) VALUES (@name)";

SqlParameter nameParam = new SqlParameter("@name", SqlDbType.Text, 155);
nameParam.Value = Name;
cmd.Parameters.Add(nameParam);

cmd.Prepare();
cmd.ExecuteNonQuery();


My table looks like so :



CREATE TABLE IngredientTypes
(
IngredientTypeID INT IDENTITY(1,1) PRIMARY KEY,
Name VARCHAR(155)
);


I get this error :




SQLException : Incorrect systax near '1'.



System.Data.SqlClient.SqlConnection.ErrorHandler (System.Object sender, Mono.Data.Tds. Protocol.TdsInternalErrorMessageEventArgs e)




Help please? Thank you in advance.. I can't find where I did wrong.







c# sql unity3d prepared-statement






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 17 '18 at 7:20









marc_s

575k12811101257




575k12811101257










asked Nov 17 '18 at 3:35









oriishioriishi

1




1








  • 1





    What is your Name variable set to?

    – Gabriel Luci
    Nov 17 '18 at 4:02














  • 1





    What is your Name variable set to?

    – Gabriel Luci
    Nov 17 '18 at 4:02








1




1





What is your Name variable set to?

– Gabriel Luci
Nov 17 '18 at 4:02





What is your Name variable set to?

– Gabriel Luci
Nov 17 '18 at 4:02












4 Answers
4






active

oldest

votes


















2














You can reduce that code quite a bit with no loss of function, and even some important improvements (for example, this will close the connection even if an exception is thrown):



using (var sqlConnection = new SqlConnection(Connection.connectionString))
using (var cmd = new SqlCommand("INSERT INTO IngredientTypes (Name) VALUES (@name)", sqlConnection))
{
cmd.Parameters.Add("@name", SqlDbType.VarChar, 155).Value = Name;
sqlConnection.Open();
cmd.ExecuteNonQuery();
}


I'm not sure what's causing that exception in your existing code, though, because 1 is not used anywhere in that query. I suspect the problem has something to do with SqlDbType.Text, since that is not the correct type to use with a VarChar column, but it seems just as likely there's code somewhere we haven't seen yet that's changing your SQL command text.



Definitely the Prepare() method in your link is not needed for Sql Server. It's inherited here from DbCommand, where it's included because it's an important part of the API for some other databases, but Sql Server has handled this automatically for more than 10 years now.






share|improve this answer


























  • Thanks for the last paragraph info. I tried something that I learned at school but with PHP... hehe. I removed the Prepare() method from my code and I didnt receive any error. Thank you :D

    – oriishi
    Nov 17 '18 at 5:08



















1














SqlDbType.Text Is not the same as varchar. I don’t believe Text types have a length you specify.






share|improve this answer
























  • I tried NVarChar and Varchar. But the error I receive is still the same.

    – oriishi
    Nov 17 '18 at 4:55



















0














Could you try below? Using the "using" structure is safer for sql connections by the way, the connection automatically closes when your process is done.



using (SqlConnection sqlConnection = new SqlConnection(Connection.connectionString))
{
SqlCommand command = new SqlCommand("INSERT INTO IngredientTypes (Name) VALUES (@name)", connection);
command.Parameters.Add("@name", SqlDbType.Varchar, 155);
command.Parameters["@name"].Value = Name; //make sure Name is string.

try
{
sqlConnection.Open();
command.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}





share|improve this answer
























  • Thanks, I tried the using structure. Actually the code I pasted is inside an using, I just didnt mentioned it on the post. The error is still the same.. :/

    – oriishi
    Nov 17 '18 at 4:54





















0














I tried your code exactly as it is and found no issue. Though there are few compilation errors (missing ; in line 1 and Name variable should be coming as parameter) but I am sure you know that. If you have posted your table structure and code exactly the same as you have in your project, then there is no problem in this code.






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53347943%2fsqlexception-incorrect-syntax-near-1%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    4 Answers
    4






    active

    oldest

    votes








    4 Answers
    4






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    2














    You can reduce that code quite a bit with no loss of function, and even some important improvements (for example, this will close the connection even if an exception is thrown):



    using (var sqlConnection = new SqlConnection(Connection.connectionString))
    using (var cmd = new SqlCommand("INSERT INTO IngredientTypes (Name) VALUES (@name)", sqlConnection))
    {
    cmd.Parameters.Add("@name", SqlDbType.VarChar, 155).Value = Name;
    sqlConnection.Open();
    cmd.ExecuteNonQuery();
    }


    I'm not sure what's causing that exception in your existing code, though, because 1 is not used anywhere in that query. I suspect the problem has something to do with SqlDbType.Text, since that is not the correct type to use with a VarChar column, but it seems just as likely there's code somewhere we haven't seen yet that's changing your SQL command text.



    Definitely the Prepare() method in your link is not needed for Sql Server. It's inherited here from DbCommand, where it's included because it's an important part of the API for some other databases, but Sql Server has handled this automatically for more than 10 years now.






    share|improve this answer


























    • Thanks for the last paragraph info. I tried something that I learned at school but with PHP... hehe. I removed the Prepare() method from my code and I didnt receive any error. Thank you :D

      – oriishi
      Nov 17 '18 at 5:08
















    2














    You can reduce that code quite a bit with no loss of function, and even some important improvements (for example, this will close the connection even if an exception is thrown):



    using (var sqlConnection = new SqlConnection(Connection.connectionString))
    using (var cmd = new SqlCommand("INSERT INTO IngredientTypes (Name) VALUES (@name)", sqlConnection))
    {
    cmd.Parameters.Add("@name", SqlDbType.VarChar, 155).Value = Name;
    sqlConnection.Open();
    cmd.ExecuteNonQuery();
    }


    I'm not sure what's causing that exception in your existing code, though, because 1 is not used anywhere in that query. I suspect the problem has something to do with SqlDbType.Text, since that is not the correct type to use with a VarChar column, but it seems just as likely there's code somewhere we haven't seen yet that's changing your SQL command text.



    Definitely the Prepare() method in your link is not needed for Sql Server. It's inherited here from DbCommand, where it's included because it's an important part of the API for some other databases, but Sql Server has handled this automatically for more than 10 years now.






    share|improve this answer


























    • Thanks for the last paragraph info. I tried something that I learned at school but with PHP... hehe. I removed the Prepare() method from my code and I didnt receive any error. Thank you :D

      – oriishi
      Nov 17 '18 at 5:08














    2












    2








    2







    You can reduce that code quite a bit with no loss of function, and even some important improvements (for example, this will close the connection even if an exception is thrown):



    using (var sqlConnection = new SqlConnection(Connection.connectionString))
    using (var cmd = new SqlCommand("INSERT INTO IngredientTypes (Name) VALUES (@name)", sqlConnection))
    {
    cmd.Parameters.Add("@name", SqlDbType.VarChar, 155).Value = Name;
    sqlConnection.Open();
    cmd.ExecuteNonQuery();
    }


    I'm not sure what's causing that exception in your existing code, though, because 1 is not used anywhere in that query. I suspect the problem has something to do with SqlDbType.Text, since that is not the correct type to use with a VarChar column, but it seems just as likely there's code somewhere we haven't seen yet that's changing your SQL command text.



    Definitely the Prepare() method in your link is not needed for Sql Server. It's inherited here from DbCommand, where it's included because it's an important part of the API for some other databases, but Sql Server has handled this automatically for more than 10 years now.






    share|improve this answer















    You can reduce that code quite a bit with no loss of function, and even some important improvements (for example, this will close the connection even if an exception is thrown):



    using (var sqlConnection = new SqlConnection(Connection.connectionString))
    using (var cmd = new SqlCommand("INSERT INTO IngredientTypes (Name) VALUES (@name)", sqlConnection))
    {
    cmd.Parameters.Add("@name", SqlDbType.VarChar, 155).Value = Name;
    sqlConnection.Open();
    cmd.ExecuteNonQuery();
    }


    I'm not sure what's causing that exception in your existing code, though, because 1 is not used anywhere in that query. I suspect the problem has something to do with SqlDbType.Text, since that is not the correct type to use with a VarChar column, but it seems just as likely there's code somewhere we haven't seen yet that's changing your SQL command text.



    Definitely the Prepare() method in your link is not needed for Sql Server. It's inherited here from DbCommand, where it's included because it's an important part of the API for some other databases, but Sql Server has handled this automatically for more than 10 years now.







    share|improve this answer














    share|improve this answer



    share|improve this answer








    edited Nov 17 '18 at 4:25

























    answered Nov 17 '18 at 4:18









    Joel CoehoornJoel Coehoorn

    308k95490722




    308k95490722













    • Thanks for the last paragraph info. I tried something that I learned at school but with PHP... hehe. I removed the Prepare() method from my code and I didnt receive any error. Thank you :D

      – oriishi
      Nov 17 '18 at 5:08



















    • Thanks for the last paragraph info. I tried something that I learned at school but with PHP... hehe. I removed the Prepare() method from my code and I didnt receive any error. Thank you :D

      – oriishi
      Nov 17 '18 at 5:08

















    Thanks for the last paragraph info. I tried something that I learned at school but with PHP... hehe. I removed the Prepare() method from my code and I didnt receive any error. Thank you :D

    – oriishi
    Nov 17 '18 at 5:08





    Thanks for the last paragraph info. I tried something that I learned at school but with PHP... hehe. I removed the Prepare() method from my code and I didnt receive any error. Thank you :D

    – oriishi
    Nov 17 '18 at 5:08













    1














    SqlDbType.Text Is not the same as varchar. I don’t believe Text types have a length you specify.






    share|improve this answer
























    • I tried NVarChar and Varchar. But the error I receive is still the same.

      – oriishi
      Nov 17 '18 at 4:55
















    1














    SqlDbType.Text Is not the same as varchar. I don’t believe Text types have a length you specify.






    share|improve this answer
























    • I tried NVarChar and Varchar. But the error I receive is still the same.

      – oriishi
      Nov 17 '18 at 4:55














    1












    1








    1







    SqlDbType.Text Is not the same as varchar. I don’t believe Text types have a length you specify.






    share|improve this answer













    SqlDbType.Text Is not the same as varchar. I don’t believe Text types have a length you specify.







    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Nov 17 '18 at 4:05









    Neil.WorkNeil.Work

    61126




    61126













    • I tried NVarChar and Varchar. But the error I receive is still the same.

      – oriishi
      Nov 17 '18 at 4:55



















    • I tried NVarChar and Varchar. But the error I receive is still the same.

      – oriishi
      Nov 17 '18 at 4:55

















    I tried NVarChar and Varchar. But the error I receive is still the same.

    – oriishi
    Nov 17 '18 at 4:55





    I tried NVarChar and Varchar. But the error I receive is still the same.

    – oriishi
    Nov 17 '18 at 4:55











    0














    Could you try below? Using the "using" structure is safer for sql connections by the way, the connection automatically closes when your process is done.



    using (SqlConnection sqlConnection = new SqlConnection(Connection.connectionString))
    {
    SqlCommand command = new SqlCommand("INSERT INTO IngredientTypes (Name) VALUES (@name)", connection);
    command.Parameters.Add("@name", SqlDbType.Varchar, 155);
    command.Parameters["@name"].Value = Name; //make sure Name is string.

    try
    {
    sqlConnection.Open();
    command.ExecuteNonQuery();
    }
    catch (Exception ex)
    {
    Console.WriteLine(ex.Message);
    }
    }





    share|improve this answer
























    • Thanks, I tried the using structure. Actually the code I pasted is inside an using, I just didnt mentioned it on the post. The error is still the same.. :/

      – oriishi
      Nov 17 '18 at 4:54


















    0














    Could you try below? Using the "using" structure is safer for sql connections by the way, the connection automatically closes when your process is done.



    using (SqlConnection sqlConnection = new SqlConnection(Connection.connectionString))
    {
    SqlCommand command = new SqlCommand("INSERT INTO IngredientTypes (Name) VALUES (@name)", connection);
    command.Parameters.Add("@name", SqlDbType.Varchar, 155);
    command.Parameters["@name"].Value = Name; //make sure Name is string.

    try
    {
    sqlConnection.Open();
    command.ExecuteNonQuery();
    }
    catch (Exception ex)
    {
    Console.WriteLine(ex.Message);
    }
    }





    share|improve this answer
























    • Thanks, I tried the using structure. Actually the code I pasted is inside an using, I just didnt mentioned it on the post. The error is still the same.. :/

      – oriishi
      Nov 17 '18 at 4:54
















    0












    0








    0







    Could you try below? Using the "using" structure is safer for sql connections by the way, the connection automatically closes when your process is done.



    using (SqlConnection sqlConnection = new SqlConnection(Connection.connectionString))
    {
    SqlCommand command = new SqlCommand("INSERT INTO IngredientTypes (Name) VALUES (@name)", connection);
    command.Parameters.Add("@name", SqlDbType.Varchar, 155);
    command.Parameters["@name"].Value = Name; //make sure Name is string.

    try
    {
    sqlConnection.Open();
    command.ExecuteNonQuery();
    }
    catch (Exception ex)
    {
    Console.WriteLine(ex.Message);
    }
    }





    share|improve this answer













    Could you try below? Using the "using" structure is safer for sql connections by the way, the connection automatically closes when your process is done.



    using (SqlConnection sqlConnection = new SqlConnection(Connection.connectionString))
    {
    SqlCommand command = new SqlCommand("INSERT INTO IngredientTypes (Name) VALUES (@name)", connection);
    command.Parameters.Add("@name", SqlDbType.Varchar, 155);
    command.Parameters["@name"].Value = Name; //make sure Name is string.

    try
    {
    sqlConnection.Open();
    command.ExecuteNonQuery();
    }
    catch (Exception ex)
    {
    Console.WriteLine(ex.Message);
    }
    }






    share|improve this answer












    share|improve this answer



    share|improve this answer










    answered Nov 17 '18 at 4:05









    Eray BalkanliEray Balkanli

    4,28352144




    4,28352144













    • Thanks, I tried the using structure. Actually the code I pasted is inside an using, I just didnt mentioned it on the post. The error is still the same.. :/

      – oriishi
      Nov 17 '18 at 4:54





















    • Thanks, I tried the using structure. Actually the code I pasted is inside an using, I just didnt mentioned it on the post. The error is still the same.. :/

      – oriishi
      Nov 17 '18 at 4:54



















    Thanks, I tried the using structure. Actually the code I pasted is inside an using, I just didnt mentioned it on the post. The error is still the same.. :/

    – oriishi
    Nov 17 '18 at 4:54







    Thanks, I tried the using structure. Actually the code I pasted is inside an using, I just didnt mentioned it on the post. The error is still the same.. :/

    – oriishi
    Nov 17 '18 at 4:54













    0














    I tried your code exactly as it is and found no issue. Though there are few compilation errors (missing ; in line 1 and Name variable should be coming as parameter) but I am sure you know that. If you have posted your table structure and code exactly the same as you have in your project, then there is no problem in this code.






    share|improve this answer




























      0














      I tried your code exactly as it is and found no issue. Though there are few compilation errors (missing ; in line 1 and Name variable should be coming as parameter) but I am sure you know that. If you have posted your table structure and code exactly the same as you have in your project, then there is no problem in this code.






      share|improve this answer


























        0












        0








        0







        I tried your code exactly as it is and found no issue. Though there are few compilation errors (missing ; in line 1 and Name variable should be coming as parameter) but I am sure you know that. If you have posted your table structure and code exactly the same as you have in your project, then there is no problem in this code.






        share|improve this answer













        I tried your code exactly as it is and found no issue. Though there are few compilation errors (missing ; in line 1 and Name variable should be coming as parameter) but I am sure you know that. If you have posted your table structure and code exactly the same as you have in your project, then there is no problem in this code.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 17 '18 at 6:43









        Maroof RainiMaroof Raini

        112




        112






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53347943%2fsqlexception-incorrect-syntax-near-1%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            這個網誌中的熱門文章

            Academy of Television Arts & Sciences

            L'Équipe

            1995 France bombings