2

データテーブルに追加されたデータが表示されません。これはコードです。

Visual Studio2010Expressを使用しています。

private void button1_Click(object sender, EventArgs e)
{
    string t1 = textBox1.Text;

    SqlCeConnection conn =
       new SqlCeConnection(@"Data Source=|DataDirectory|\Database1.sdf");

    conn.Open();

    SqlCeCommand cmdInsert = conn.CreateCommand();
    cmdInsert.CommandText = "INSERT TO table_name (Column1) VALUES (t1)";

    cmdInsert.ExecuteNonQuery();

    conn.Close();
}

ボタンをクリックした後、データテーブルに挿入されません。エラーが発生します。

cmdInsert.ExecuteNonQuery();

デバッグしますが、ボタンをクリックするとエラーが表示されます

SqlCeExceptionは処理されませんでした。クエリの解析中にエラーが発生しました。[トークン行番号=1、トークン行オフセット= 8、エラーのトークン= TO]

4

5 に答える 5

7

試す:

cmdInsert.Parameters.AddWithValue("@t1", textBox1.Text);
cmdInsert.CommandText = "insert INTO table_name (Column1) VALUES (@t1)";
于 2013-03-05T19:37:43.487 に答える
3

コードには 2 つの問題があります。

  • INSERT INTOSQL ステートメントの構文エラー -の代わりに記述してくださいINSERT TO
  • t1SQL 文字列で直接使用することはできません。他のコメントで提案されているように文字列を連結することもできますが、代わりにパラメーター化されたコマンドを使用することをお勧めします。

修正版は次のとおりです。

SqlCeCommand cmdInsert = conn.CreateCommand();
cmdInsert.CommandText = "INSERT INTO table_name (Column1) VALUES (@t1)";
cmdInsert.Parameters.AddWithValue("@t1", t1);
cmdInsert.ExecuteNonQuery();

値を挿入するために SqlCeCommand.Parameters.AddWithValue() が必要な理由を参照してください。コマンド パラメータの詳細については、

于 2013-03-05T19:39:10.523 に答える
1

SQL クエリが間違っています。

それ以外の

cmdInsert.CommandText = "INSERT TO table_name (Column1) VALUES (t1)";

あるはずです

cmdInsert.CommandText = "INSERT INTO table_name (Column1) VALUES (t1)";
于 2013-03-05T19:37:05.843 に答える
1
string t1 = textBox1.Text;
            SqlCeConnection conn = new SqlCeConnection(@"Data Source=|DataDirectory|\Database1.sdf");
            conn.Open();
            SqlCeCommand cmdInsert = conn.CreateCommand();
            cmdInsert.CommandText = "INSERT into table_name (Column1) VALUES ('" + t1 + "')";
            cmdInsert.ExecuteNonQuery();
            conn.Close();
于 2013-03-05T19:40:53.907 に答える
0

t1おそらくパラメーターを使用して、の値を渡す必要があります。

private void button1_Click(object sender, EventArgs e)
{
    string t1 = textBox1.Text;
    SqlCeConnection conn =
       new SqlCeConnection(@"Data Source=|DataDirectory|\Database1.sdf");
    conn.Open();
    SqlCeCommand cmdInsert = conn.CreateCommand();
    cmdInsert.CommandText = "INSERT INTO table_name (Column1) VALUES (@t1)";
    var parameter = cmdInsert.CreateParameter();
    parameter.Value = t1;
    parameter.ParameterName = "@t1";

    cmdInsert.Parameters.Add(parameter);

    cmdInsert.ExecuteNonQuery();
    conn.Close();
}
于 2013-03-05T19:39:13.997 に答える