从Oracle DB请求中获取所有数据

时间:2014-07-16 13:15:58

标签: c# sql oracle

我想在我的oracle db中为sql请求在c#中创建一个通用函数 我想将所有列保存到字符串。我尝试使用reader.GetString()方法,但抛出异常,说它是不可转换的...
我怎样才能做出这样做的功能?
string [] request (OracleConnection con, String Table, String condition, String columns, String sort){ //The magic code return "A string-array with all information"; }

1 个答案:

答案 0 :(得分:0)

您可以在DBReader上使用Item属性吗?此外,此方法存在严重的安全风险 - 使用条件字符串而不是params会引发sql注入。

    public string[] Request(IDBConnection conn, string table, string condition, string columns, string sort)
    {
        List<string> output = new List<string>();
        string[] cols = columns.Split(',');
        string sql = string.Format("select * from {0} etc", table);
        using (IDBCommand cmd = new OracleCommand(conn, sql))
        {
            conn.Open();
            IDBReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                foreach (string col in cols)
                {
                    object field = reader.Item[col];
                    output.Add(field.ToString());
                }
            }
        }
        return output.ToArray();
    }
相关问题