OLEDBCONNECTION-并非所有信息都通过



我正在尝试将一些信息传递到访问数据库,但是我不确定是否正确使用ExecuteNonQuery()。这是我正在使用的代码:

public void WriteToDB(string connStr, string tblName)
    {
        string[] accounts = { "@ID", "@Date", "@Line Item", "@Ranking Item", "@Item Attribute", "@Current_Period_Ranking(b)" };
        OleDbConnection conn = new OleDbConnection(connStr);
        conn.Open();
        OleDbCommand CmdSQL = new OleDbCommand(string.Format("Insert into [{0}] ([ID], [Date], [Line Item], [Ranking Item], [Ranking]) VALUES(?,?,?,?,?)",tblName),conn);
        CmdSQL.Parameters.AddWithValue("@ID", 1);
        CmdSQL.Parameters.AddWithValue("@Date", "6/20/2016");
        CmdSQL.Parameters.AddWithValue("@Line Item", this.ItemName);
        CmdSQL.Parameters.AddWithValue("@Ranking Item", "Ranking");
        CmdSQL.Parameters.AddWithValue("@Ranking", this.Rank.GetLineItem(3));
        CmdSQL.ExecuteNonQuery();
        CmdSQL.Parameters.AddWithValue("@ID", 2);
        CmdSQL.Parameters.AddWithValue("@Date", "6/20/2016");
        CmdSQL.Parameters.AddWithValue("@Line Item", this.ItemName);
        CmdSQL.Parameters.AddWithValue("@Ranking Item", "Price");
        CmdSQL.Parameters.AddWithValue("@Ranking", this.Price);
        CmdSQL.ExecuteNonQuery();
        CmdSQL.Parameters.AddWithValue("@ID", 3);
        CmdSQL.Parameters.AddWithValue("@Date", "6/20/2016");
        CmdSQL.Parameters.AddWithValue("@Line Item", this.ItemName);
        CmdSQL.Parameters.AddWithValue("@Ranking Item", "Pounds");
        CmdSQL.Parameters.AddWithValue("@Ranking", this.Pounds);
        CmdSQL.ExecuteNonQuery();
        CmdSQL.Parameters.AddWithValue("@ID", 4);
        CmdSQL.Parameters.AddWithValue("@Date", "6/20/2016");
        CmdSQL.Parameters.AddWithValue("@Line Item", this.ItemName);
        CmdSQL.Parameters.AddWithValue("@Ranking Item", "Opportunity");
        CmdSQL.Parameters.AddWithValue("@Ranking", this.Opportunity);
        CmdSQL.ExecuteNonQuery();
    }

当我运行这一点代码时,访问DB仅显示1。

由于您使用的是同一命令,因此必须清除参数:

CmdSQL.ExecuteNonQuery();
CmdSQL.Parameters.Clear();
CmdSQL.Parameters.AddWithValue("@ID", 4);
....

在旁注上,日期应为数据库中的日期,而不是字符串。如果您有一堆具有相同结构的表,您的数据库看起来很有问题。为什么不只是一个桌子和一个区分它是什么类型行的字段。这将使您的查询更容易。将这些一次性数据库对象放在使用块中也很普遍和有益。

相关内容

  • 没有找到相关文章

最新更新