我的問題與this one類似,我如何使用OracleDataReader檢索給定記錄的所有字段?目前,我一直在使用這種方法,它一次只返回一個列值:如何使用OracleDataReader檢索給定記錄的所有字段?
public string Select_File(string filename, string subdirectory, string envID)
{
Data_Access da = new Data_Access();
OracleConnection conn = da.openDB();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT * FROM EIP_Deployment_Files"
+ " WHERE Filename ='" + filename + "'"
+ " AND Subdirectory = '" + subdirectory + "'"
+ " AND Environment_ID = '" + envID + "'";
cmd.CommandType = CommandType.Text;
string x;
OracleDataReader dr = cmd.ExecuteReader();
if (dr.HasRows) // file exists in DB
{
dr.Read();
x = dr.GetString(2).ToString(); // return baseline filename (index 2)
}
else
{
x = "New File";
}
cmd.Dispose();
da.CloseDB(conn);
return x;
}
我敢肯定,這種方法是遠遠不夠完善和PPL會很快指出這一點(我是基本上是由我的主管給出的,因爲我之前沒有任何ASP.NET的經驗),但我真正關心的是它的工作原理。我的問題是:如何修改以返回全部給定記錄的字段?
這些字段將是VARCHAR2,CHAR或DATE數據類型(如果這有所不同),並且其中某些值可能爲空。我在想我可以將它們轉換爲字符串並將它們作爲列表返回?
注意:'cmd.CommandText'容易受到注入攻擊 – rdev5 2016-06-16 23:58:53