1

C# を使用してデータベースに項目を追加しようとしています。私は2つのテーブルを持つデータベースを持っています:

「プロジェクトパーツ」

「プロジェクトテーブル」、このテーブルには「プロジェクト名」という名前の列があります

しかし、私はこのエラーを受け取ります:

クエリの解析中にエラーが発生しました。[トークン行番号 = 1、トークン行オフセット = 21、エラーのトークン = テーブル]

これが私が使用しているコードです。

private void button1_Click(object sender, EventArgs e)
    {
        sqlCEC.Open();

        //Project_List.Items.Add(new_project_name.Text.ToString());
        SqlCeCommand sqlCEcommand = new SqlCeCommand("INSERT INTO Project Table(Project Name) VALUES(@Project Name)", sqlCEC);
        sqlCEcommand.Parameters.AddWithValue("@Project Name", new_project_name.Text);

        sqlCEcommand.ExecuteNonQuery();

        sqlCEC.Close();
    }
4

4 に答える 4

1

スペースを含むテーブルとフィールドは角かっこで囲む必要があります。

SqlCeCommand sqlCEcommand = new SqlCeCommand("INSERT INTO [プロジェクト テーブル] ([プロジェクト名]) VALUES (@ProjectName)", sqlCEC);

また、パラメーター変数にスペースを含めないでください。次のように変更してみてください@ProjectName

sqlCEcommand.Parameters.AddWithValue("@ProjectName", new_project_name.Text);
于 2013-02-20T15:09:33.313 に答える
1

スペースを含むテーブル名と列名は、通常、 and で囲む必要が[あり]ます。また、パラメータにスペースを含めることはできません

INSERT INTO [Project Table]([Project Name]) VALUES(@ProjectName)

sqlCEcommand.Parameters.AddWithValue("@ProjectName", new_project_name.Text);
于 2013-02-20T15:09:37.767 に答える
1

データベース オブジェクトにスペースが含まれている場合、この名前を角括弧で囲む必要があります。
また、スペースを使用してパラメータに名前を付けないでください。

private void button1_Click(object sender, EventArgs e)
{
    sqlCEC.Open();
    SqlCeCommand sqlCEcommand = new SqlCeCommand("INSERT INTO [Project Table] " + 
             "([Project Name]) VALUES(@ProjectName)", sqlCEC);
    sqlCEcommand.Parameters.AddWithValue("@ProjectName", new_project_name.Text);
    sqlCEcommand.ExecuteNonQuery();
    sqlCEC.Close();
}
于 2013-02-20T15:09:54.850 に答える
1

どうですか?

private void button1_Click(object sender, EventArgs e)
{
    sqlCEC.Open();
    SqlCeCommand sqlCEcommand = new SqlCeCommand("INSERT INTO [Project Table]([Project Name]) VALUES([@Project Name])", sqlCEC);
    sqlCEcommand.Parameters.AddWithValue("@Project Name", new_project_name.Text);
    sqlCEcommand.ExecuteNonQuery();
    sqlCEC.Close();
}

データベース オブジェクトにはスペースが含まれているため、それらを次のように囲む必要があります。[]

私の謙虚なアドバイスは、テーブルまたは列名にスペースやその他の特殊文字を使用しないことです。

于 2013-02-20T15:10:12.447 に答える