1

他のすべての設定は完了しましたが、アクセスするテーブルにエントリを追加するだけで済みます。データ グリッド ビューにデータを表示し、バインディング ナビゲーターでバインディング ソースを使用するのは簡単ですが、シナリオは次のとおりです。 : 曲名、アーティスト、ジャンルを含むテーブルと、ジャンルのみを含む別のテーブルが必要です。2 つのテーブルには、ジャンルとの関係 (参照整合性) があります。C# プログラムで入力ボックスを呼び出して、単純に新しいジャンルをジャンル テーブルに追加したいと考えています。エントリを簡単に追加するためのデータ グリッド ビューやその他のコントロールがないため、テーブルにエントリを追加する簡単な手順は何ですか?

これまでの適切なイベント ハンドラのコードは次のとおりです。

private void newGenreToolStripMenuItem_Click(object sender, EventArgs e)
{
    //(cnSongs)Connection delacred and instantiated elsewhere
    cnSongs.Open();

    string input = Interaction.InputBox("Genre ", "New Genre", "Type genre here", -1, -1);

    string InsertSql = "INSERT INTO tblGenres (Genre) VALUES (" + input + ")";

    OleDbCommand cmdInsert = new OleDbCommand(InsertSql, cnSongs);

    //(daSongs)Data Adapter delacred and instantiated elsewhere
    daSongs = new OleDbDataAdapter(InsertSql, cnSongs);

    daSongs.InsertCommand = cmdInsert;

    cmdInsert.ExecuteNonQuery();
    cnSongs.Close();
}

私は調査を行い、必要なSQLステートメントのみを取得しました。これは便利でしたが、コードで実行する方法を知る必要があります。

お時間をいただきありがとうございます。

4

1 に答える 1

1

使い方の一例ですOleDbParameter。しかし、あなたのコードが新しいジャンルを生み出さない理由がわかりません。

private void newGenreToolStripMenuItem_Click(object sender, EventArgs e)
{
    //(cnSongs)Connection delacred and instantiated elsewhere
    cnSongs.Open();
    try {

        string input = Interaction.InputBox("Genre ", "New Genre", "Type genre here", -1, -1);

        Console.WriteLine("User input " + input);
        string InsertSql = "Insert Into tblGenres (Genre) Values (?)";

        OleDbCommand cmdInsert = new OleDbCommand(InsertSql, cnSongs);

        cmdInsert.Parameters.Add(new OleDbParameter("genre", input));

        int i = cmdInsert.ExecuteNonQuery();
        Console.WriteLine("Inseted " + i.toString() + " row(s)");
    } finally {
        cnSongs.Close();
    }
}
于 2013-09-22T15:57:28.690 に答える