SQLクエリを実行する関数があります。レジストリ値に応じて、SQL Server または SQL Server Compact Edition にヒットします。SQL Server CE を使用している場合、recordSet 変数を設定する行は次のようになります。
SqlCeDataReader recordSet = da.ExecuteSQLCommand(selectCommand);
SQL Server の場合、次のようになります。
SqlDataReader recordSet = da.ExecuteSQLCommand(selectCommand);
関数の先頭にある if/then ステートメントにこれらすべてを入れようとしていますが、if/then 内で Type を設定する方法がわかりません。ここに私の(部分的な)コードがあります:
public static string SqlQuery(string selectCommand, int regval)
{
var recordSet = null;
string selectCommand = "select * from whatever";
if (regval == 0)
{
SqlDataReader recordSet = null;
}
else
{
SqlCEDataReader recordSet = null;
}
recordSet = da.ExecuteSQLCommand(selectCommand);
}
問題は、if/else の前に recordSet 変数を宣言しないと、後で使用できないことです。ただし、if/else の前に宣言すると、型を変更できません。