在C#中使用INSERT sql命令和Access数据库

时间:2013-09-22 13:55:35

标签: c# sql ms-access-2010

我还有其他一切设置,但现在我只需要在access中添加一个条目到我的表。在数据网格视图中显示我的数据并使用带有绑定导航器的绑定源会很简单,但我在这里场景:我必须使用表格,一个有歌曲名称,艺术家和流派以及另一个只有流派的表格,这两个表格具有与流派相关的关系(具有参照完整性)。我想在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语句,这很有用,但我需要知道如何在代码中对它进行说明。

感谢您的时间。

1 个答案:

答案 0 :(得分: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();
    }
}