Веб-служба ASMX для хранения пользовательских данных с помощью ошибки SQL Server-SQL - PullRequest
0 голосов
/ 18 марта 2012

Я пытаюсь создать веб-службу ASMX в Visual Web Developer. Я успешно реализовал следующее

  • Создана база данных с колонками E-mail, Имя
  • Создан сервис

Я также указал строку подключения web.config, как

<connectionStrings>
  <add name="mydb" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|Database.mdf;User Instance=true" providerName="System.Data.SqlClient"/>
    </connectionStrings>

Но я получаю исключение SQL "Неверный синтаксис рядом с @Name" после ввода данных в форму обслуживания

[WebMethod]
public string insertuser(String UserName,String Email)
{

    string connectionString = ConfigurationManager.ConnectionStrings["mydb"].ConnectionString;

    SqlConnection sqlCon = new SqlConnection(connectionString);
    SqlCommand nonqueryCommand = sqlCon.CreateCommand();
    sqlCon.Open();
    nonqueryCommand.CommandText = "INSERT  INTO UID (Email, Name) VALUES (@Email, @Name";

    // Add Parameters to Command Parameters collection
    nonqueryCommand.Parameters.Add("@Email", SqlDbType.VarChar, 10);
    nonqueryCommand.Parameters.Add("@Name", SqlDbType.VarChar, 20);


    nonqueryCommand.Parameters["@Email"].Value = UserName;
    nonqueryCommand.Parameters["@Name"].Value = Email;


    nonqueryCommand.ExecuteNonQuery();
    return "done";

}

Ответы [ 3 ]

1 голос
/ 18 марта 2012

как andomar правильно указал, что в вашей команде sql отсутствует закрывающая скобка

только одна вещь, которую вы можете сгенерировать командой вставки в вашем sql и просто вставить сгенерированный sql в ваш код.

IE ваш код должен выглядеть как

nonqueryCommand.CommandText = "INSERT INTO UID (Email, Name) VALUES (@Email, @Name)";

0 голосов
/ 18 марта 2012

Вам не хватает закрывающей скобки:

VALUES (@Email, @Name)";
0 голосов
/ 18 марта 2012

Добавить закрывающую скобку:

VALUES (@Email, @Name";
...