これに似た私の質問は、OracleDataReader を使用して特定のレコードのすべてのフィールドを取得するにはどうすればよいですか? 現在、一度に 1 つの列の値のみを返すこのメソッドを使用しています。
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;
}
この方法は完璧にはほど遠いと確信しており、人々はすぐにそれを指摘するでしょう (ASP.NET の経験がなかったので、基本的に上司から与えられました)。それが機能すること。私の質問は、特定のレコードのすべてのフィールドを返すように変更するにはどうすればよいですか?
フィールドは VARCHAR2、CHAR、または DATE のいずれかのデータ型になり (違いがある場合)、これらの値の一部は null になる場合があります。それらを文字列に変換してリストとして返すことができると思いますか?