LinqToSql 查询:处理空值
LinqToSql query : deal with null values
这是一个 Linq-to-SQL 查询,用于检查 SQL 服务器视图是否存在 2 个值:一个整数 (LOT
) 和一个字符串 (ART_CODE
).
但有时这些值在视图中 null
。在那种情况下,我会在屏幕上显示异常。
如何修改此代码以处理空值?
private void ValidProdPlusLotBtn_Click(object sender, RoutedEventArgs e)
{
int lot = Convert.ToInt32(NumLotTxtBox.Text);
string artCode = ArtCodeLB.Content.ToString();
try
{
#region Qte Restant à produire
DataClasses1DataContext dc2 = new DataClasses1DataContext();
var reste = from r in dc.Vw_MajPoids_Restant
where r.LOT == lot && r.ART_CODE == artCode
select new
{
r.PnetRestant,
r.NbuRestant
};
LotRestantTB.Text = reste.First().PnetRestant.ToString();
NbuRestantTB.Text = reste.First().NbuRestant.ToString();
#endregion
}
catch (Exception ex)
{
StackTrace st = new StackTrace();
Messages.ErrorMessages($"{st.GetFrame(1).GetMethod().Name}\n\n{ex.ToString()}");
}
}
我发现它运行良好:
private void ValidProdPlusLotBtn_Click(object sender, RoutedEventArgs e)
{
int lot = Convert.ToInt32(NumLotTxtBox.Text);
string artCode = ArtCodeLB.Content.ToString();
try
{
#region Qte Restant à produire
DataClasses1DataContext dc2 = new DataClasses1DataContext();
var reste = from r in dc.Vw_MajPoids_Restant
where r.LOT == lot && r.ART_CODE == artCode
select new
{
r.PnetRestant,
r.NbuRestant
};
if(!reste.Any())
{
// Do nothing
}
else
{
LotRestantTB.Text = reste.First().PnetRestant.ToString();
NbuRestantTB.Text = reste.First().NbuRestant.ToString();
}
#endregion
}
catch (Exception ex)
{
StackTrace st = new StackTrace();
Messages.ErrorMessages($"{st.GetFrame(1).GetMethod().Name}\n\n{ex.ToString()}");
}
}
如果它可以帮助别人...
这是一个 Linq-to-SQL 查询,用于检查 SQL 服务器视图是否存在 2 个值:一个整数 (LOT
) 和一个字符串 (ART_CODE
).
但有时这些值在视图中 null
。在那种情况下,我会在屏幕上显示异常。
如何修改此代码以处理空值?
private void ValidProdPlusLotBtn_Click(object sender, RoutedEventArgs e)
{
int lot = Convert.ToInt32(NumLotTxtBox.Text);
string artCode = ArtCodeLB.Content.ToString();
try
{
#region Qte Restant à produire
DataClasses1DataContext dc2 = new DataClasses1DataContext();
var reste = from r in dc.Vw_MajPoids_Restant
where r.LOT == lot && r.ART_CODE == artCode
select new
{
r.PnetRestant,
r.NbuRestant
};
LotRestantTB.Text = reste.First().PnetRestant.ToString();
NbuRestantTB.Text = reste.First().NbuRestant.ToString();
#endregion
}
catch (Exception ex)
{
StackTrace st = new StackTrace();
Messages.ErrorMessages($"{st.GetFrame(1).GetMethod().Name}\n\n{ex.ToString()}");
}
}
我发现它运行良好:
private void ValidProdPlusLotBtn_Click(object sender, RoutedEventArgs e)
{
int lot = Convert.ToInt32(NumLotTxtBox.Text);
string artCode = ArtCodeLB.Content.ToString();
try
{
#region Qte Restant à produire
DataClasses1DataContext dc2 = new DataClasses1DataContext();
var reste = from r in dc.Vw_MajPoids_Restant
where r.LOT == lot && r.ART_CODE == artCode
select new
{
r.PnetRestant,
r.NbuRestant
};
if(!reste.Any())
{
// Do nothing
}
else
{
LotRestantTB.Text = reste.First().PnetRestant.ToString();
NbuRestantTB.Text = reste.First().NbuRestant.ToString();
}
#endregion
}
catch (Exception ex)
{
StackTrace st = new StackTrace();
Messages.ErrorMessages($"{st.GetFrame(1).GetMethod().Name}\n\n{ex.ToString()}");
}
}
如果它可以帮助别人...