问题描述
我正在做导入页面,如果用户将某些条目留空并单击导入按钮,我想用缺失填充空白条目。我试过这样:
if (liveryEntry.Text == null)
{
liveryEntry.Text = "Missing";
}
if (registrationEntry.Text == null)
{
registrationEntry.Text = "Missing";
}
if (airportEntry == null)
{
airportEntry.Text = "Missing";
}
if (commentEntry == null)
{
commentEntry.Text = "Missing";
}
但有时它会起作用并用 Missing 填充它,有时它不起作用。有什么问题或有其他方法可以做到这一点? 这是方法的完整代码:
private async void buttonImport_Clicked(object sender,EventArgs e)
{
var db = new sqliteConnection(_dbPath);
db.CreateTable<Airplane>();
collectionPlane.IsVisible = false;
collectionAirline.IsVisible = false;
collectionLivery.IsVisible = false;
collectionRegistration.IsVisible = false;
collectionAirport.IsVisible = false;
try
{
if (liveryEntry.Text == null)
{
liveryEntry.Text = "Missing";
}
if (registrationEntry.Text == null)
{
registrationEntry.Text = "Missing";
}
if (airportEntry == null)
{
airportEntry.Text = "Missing";
}
if (commentEntry == null)
{
commentEntry.Text = "Missing";
}
if (planeEntry.Text != null && airlineEntry.Text != null)
{
var url = PhotoPick();
int i = 1;
int same = 0;
string fileName = registrationEntry.Text;
for (int b = 1; b <= GetNumberPhotos(); b++)
{
if (db.Table<Airplane>().FirstOrDefault(d => d.Id == b) != null)
{
var rowData = db.Table<Airplane>().FirstOrDefault(d => d.Id == b);
string match = rowData.Registration;
if (fileName == match)
{
same++;
}
}
}
i = 1 + same;
fileName = registrationEntry.Text + "-" + i;
var thumbUrl = CreateThumbnail(await url,fileName);
var maxPK = db.Table<Airplane>().OrderByDescending(c => c.Id).FirstOrDefault();
Airplane airplane = new Airplane()
{
Id = (maxPK == null ? 1 : maxPK.Id + 1),SearchId = planeEntry.Text + airlineEntry.Text + liveryEntry.Text + registrationEntry.Text + airportEntry.Text + datePicker.Date.ToString() + commentEntry.Text,Plane = planeEntry.Text.toupper(),Airline = airlineEntry.Text,Livery = liveryEntry.Text,Registration = registrationEntry.Text.toupper(),Airport = airportEntry.Text.toupper(),Date = datePicker.Date,Comment = commentEntry.Text,Url = await url,ThumbnailUrl = thumbUrl
};
db.Insert(airplane);
await displayAlert("Saved",planeEntry.Text + " of " + airlineEntry.Text + " is saved.","OK");
planeEntry.Text = "";
airlineEntry.Text = "";
liveryEntry.Text = "";
registrationEntry.Text = "";
airportEntry.Text = "";
commentEntry.Text = "";
}
else
await displayAlert("Fill all needed fields","You have to fill all fields except livery and comment","OK");
}
catch
{
await displayAlert("Error","Something went wrong","Try again");
}
}
解决方法
这可能是@Cfun 使用 if ( string.IsNullOrEmpty(liveryEntry.Text))
解决的某种错误或误解,并且它按预期工作。