C# 将数据插入数据库C中的表中

C# 将数据插入数据库C中的表中,c#,C#,我打算填充一个具有三列的access DB表;Entitytext类型、日期和值双重类型。 我通过一些在线链接编写了以下代码。虽然代码运行正常,但表中没有数据。我可能遗漏了一些部分。有什么建议吗 for (int i = 0; i < model.CDFResults.Count; i++) { // connection details to the DB here... for (int j = 0; j < model.CDFResults[i].DataPoints.

我打算填充一个具有三列的access DB表;Entitytext类型、日期和值双重类型。 我通过一些在线链接编写了以下代码。虽然代码运行正常,但表中没有数据。我可能遗漏了一些部分。有什么建议吗

for (int i = 0; i < model.CDFResults.Count; i++)
{ // connection details to the DB here...
    for (int j = 0; j < model.CDFResults[i].DataPoints.Count; j++)
    {
        OleDbCommand myAccessCommand = new OleDbCommand();
        myAccessCommand.CommandType = CommandType.Text;
        myAccessCommand.CommandText = "INSERT INTO TypeCurves([Entity],[Date],[Value])VALUES(?,?,?)";
        myAccessCommand.Parameters.AddWithValue("@Entity", model.CDFResults[i].catname_db);
        myAccessCommand.Parameters.AddWithValue("@Date", model.CDFResults[i].DataPoints[j].dt);
        myAccessCommand.Parameters.AddWithValue("@Value", model.CDFResults[i].DataPoints[j].CDFVal);


    } // end of FOR(j) loop

} // end of FOR(i) loop
编辑:仍然不工作

for (int i = 0; i < model.CDFResults.Count; i++)
{ // connection details to the DB here...
    for (int j = 0; j < model.CDFResults[i].DataPoints.Count; j++)
    {

        OleDbConnection thisConnection = new OleDbConnection(connectionname);
        thisConnection.Open();

        OleDbCommand myAccessCommand = new OleDbCommand();
        myAccessCommand.CommandType = CommandType.Text;
        myAccessCommand.CommandText = "INSERT INTO TypeCurves([Entity],[Date],[Value])VALUES(?,?,?)";
        myAccessCommand.Parameters.AddWithValue("@Entity", model.CDFResults[i].catname_db);
        myAccessCommand.Parameters.AddWithValue("@Date", model.CDFResults[i].DataPoints[j].dt);
        myAccessCommand.Parameters.AddWithValue("@Value", model.CDFResults[i].DataPoints[j].CDFVal);

        myAccessCommand.ExecuteNonQuery();    
    } // end of FOR(j) loop
} // end of FOR(i) loop

您需要创建到数据库的连接并执行查询

using (OleDbConnection connection = new OleDbConnection(connectionString))
{   
    string query = "INSERT INTO TypeCurves([Entity],[Date],[Value])VALUES(@Entity,@Date,@Value)";
    OleDbCommand myAccessCommand = new OleDbCommand(query, connection);
    myAccessCommand.Parameters.AddWithValue("@Entity", model.CDFResults[i].catname_db);
    myAccessCommand.Parameters.AddWithValue("@Date", model.CDFResults[i].DataPoints[j].dt);
    myAccessCommand.Parameters.AddWithValue("@Value", model.CDFResults[i].DataPoints[j].CDFVal);

    connection.Open();
    myAccessCommand.ExecuteNonQuery();
}
connectionString是连接数据库的字符串

在本例中,执行查询后不需要显式关闭连接,因为连接被包装在using块中,因此在退出块后将被释放


你好像不是在执行质询我该怎么做@User1666620可能是我添加的重复项,但我收到一个错误,说ExecuteOnQuery:Connection属性尚未初始化。@user5752879您需要创建到数据库的连接。谢谢。我也理解这个概念@阿伦:你的否决票是没有根据的。如果您检查问题编辑历史记录和我的答案历史记录,我最初表示他需要执行查询。然而,结果表明,除了不执行查询之外,OP一开始也没有创建连接。OP不停地更新他的问题,将我的原始答案合并到查询中,以及他自己试图创建连接的尝试中,这没有任何帮助。@user1666620好的……我的错……或者更糟糕的是OP问问题的礼仪。我将正确地恢复这个问题。。。