OLE DB ORA-01008:并非所有变量都绑定(但它们是)

时间:2012-09-27 15:23:10

标签: c# oledb

我正在尝试与运行Oracle(8)的旧版本的应用程序进行通信。我需要先进行查询以获取最新的id,然后使用此ID插入。不幸的是我在执行时遇到错误。我已经在网上搜索了但是找不到任何使用这种查询的人,所以任何帮助指针都会受到赞赏。

private static OleDbConnection GetConn()
{
return new OleDbConnection()
{
    ConnectionString = ConfigurationManager.ConnectionStrings["conn"].ConnectionString
    };
}

public bool AddModel(Model model)
{
    OleDbConnection conn = GetConn();
    conn.Open();
    StringBuilder sb = new StringBuilder();
    sb.Append("DECLARE max_id INTEGER; ");
    sb.Append("BEGIN ");
    sb.Append("SELECT MAX(SORTID) into max_id FROM QRY.TABLE where status = 'A'; ");
    sb.Append("max_id := max_id + 1; ");
    sb.Append("INSERT INTO QRY.TABLE (COL1,COL2,COL3,COL4,COL5,COL6,COL7,SORTID) VALUES(? ,? ,? ,? ,? ,? ,? ,max_id);");
    sb.Append("END;");
    using (OleDbCommand command = new OleDbCommand(sb.ToString(), conn))
{
        command.Parameters.AddWithValue("COL1", model.ID);
    command.Parameters.AddWithValue("COL2", model.Description);
    command.Parameters.AddWithValue("COL3", model.Perc);
    command.Parameters.AddWithValue("COL4", model.Amount);
    command.Parameters.AddWithValue("COL5", model.Status);
    command.Parameters.AddWithValue("COL6", model.UpdatedUser);
    command.Parameters.Add("COL7", OleDbType.Date).Value = DateTime.Now;
    command.ExecuteNonQuery();
}
}

NB我必须重新格式化这篇文章中的代码,以删除对真实表的任何引用,以便它可能放入一些类型。真正的代码可以编译并运行。

1 个答案:

答案 0 :(得分:1)

您可以修改

 sb.Append("INSERT INTO QRY.TABLE (COL1,COL2,COL3,COL4,COL5,COL6,COL7,SORTID) VALUES(@COL1,@COL2,@COL3,@COL4,@COL5,@COL6,@COL7,max_id);");

并修改此

    command.Parameters.AddWithValue("@COL1", model.ID);
    command.Parameters.AddWithValue("@COL2", model.Description);
    command.Parameters.AddWithValue("@COL3", model.Perc);
    command.Parameters.AddWithValue("@COL4", model.Amount);
    command.Parameters.AddWithValue("@COL5", model.Status);
    command.Parameters.AddWithValue("@COL6", model.UpdatedUser);
    command.Parameters.Add("@COL7", OleDbType.Date).Value = DateTime.Now;
相关问题