我想在我的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";
}
答案 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();
}