0

Visual Studio を使用して、Web サービスを使用してテーブルにデータを挿入しようとしています。メソッドを選択してパラメーターを入力し、[Invoke] ボタンをクリックすると、次のエラーが表示されます。挿入ステートメントの構文を確認し、別の構文を使用してみました。しかし、私は同じエラーが発生しています。私は何を間違っていますか?

System.Data.SqlClient.SqlException: Incorrect syntax near the keyword 'User'.
  at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
  at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
  at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
  at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
  at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
  at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
  at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
  at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
  at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
  at Service.register(String fname, String lname, String email, String num, Int32 locID)

// テーブルに値を挿入する Web メソッド //

[WebMethod]
public void register(string fname, string lname, string email, string num, int locID)
{
    SqlConnection conn;
    conn = ConnectionManager.GetConnection();
    conn.Open();
    string cmdString = "INSERT into User values(@fname,@lname,@email,@num,@locID)";
    SqlCommand sqlCommand = new SqlCommand(cmdString, conn);
    sqlCommand.CommandType = CommandType.Text;

    sqlCommand.Parameters.Add("@fname", SqlDbType.Text).Value = fname;
    sqlCommand.Parameters.Add("@lname", SqlDbType.Text).Value = lname;
    sqlCommand.Parameters.Add("@email", SqlDbType.Text).Value = email;
    sqlCommand.Parameters.Add("@num", SqlDbType.Text).Value = num;
    sqlCommand.Parameters.Add("@locID", SqlDbType.Text).Value = locID;
    sqlCommand.ExecuteNonQuery();
    conn.Close();
}

///接続マネージャー クラス///

public class ConnectionManager
 {
    public static SqlConnection NewCon;
     public static string ConStr ="Data Source=ACER-PC\\SQLEXPRESS;Initial Catalog=DisasterAlert;Integrated Security=True";

    public static SqlConnection GetConnection()
   {
        NewCon = new SqlConnection(ConStr);
        return NewCon;
   }

 }
4

1 に答える 1

1

「user」はSQLの予約語です。これを試して

"INSERT into [User] values(@fname,@lname,@email,@num,@locID)"
于 2012-06-30T08:30:08.133 に答える