任何人都可以告诉我为什么我会得到"名称'车辆'在当前背景下不存在"从这段代码?它是在我尝试连接页眉的字符串的最后一行。请注意我是c#的新手,Windows Store应用程序的新用户,SQLite的新手,还有更多。我无法理解我是否只是查询数据库并分配值以构建' Vehicle'为什么它不会在下一个声明中承认它?
public MainPrintPage()
{
this.InitializeComponent();
MaintenancesViewModel = new maintenancesViewModel();
Maintenances = MaintenancesViewModel.GetMaintenances(App.CurrentVehicleId);
MaintenancesViewSource2.Source = Maintenances;
using (var db = new SQLite.SQLiteConnection(App.DBPath))
{
var query = db.Table<vehicles>().Where(
p1 => p1.VehID == App.CurrentVehicleId).SingleOrDefault();
var Vehicle = new vehicleViewModel();
Vehicle.VehID = query.VehID;
Vehicle.VehYear = query.VehYear;
Vehicle.VehMake = query.VehMake;
Vehicle.VehModel = query.VehModel;
}
string PageTitle = string.Format("{0} Maintenance Records", Vehicle.VehYear + " " + Vehicle.VehMake + " " + Vehicle.VehModel);
}
答案 0 :(得分:2)
Vehicle
在您的using
语句中声明,它超出了最后一行的范围。尝试在Vehicle
声明之前声明using
。
答案 1 :(得分:1)
将变量声明在using
范围之外并在其中分配。您必须为其指定一个null或new的值,否则您将得到一个未初始化的值#34;错误。
vehicleViewModel Vehicle = null;
using (var db = new SQLite.SQLiteConnection(App.DBPath))
{
...
Vehicle = new vehicleViewModel();
...
}
旁注,您的命名约定与绝大多数C#程序员使用的方式相反。相反,类名的第一个字母应为大写,局部变量应为小写,如下所示:
VehicleViewModel vehicle = null;
vehicle = new VehicleViewModel();