我有一个执行 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 中设置类型。这是我的(部分)代码:
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 之前声明它,我无法更改类型。