大家好,当我想在我的数据库中匹配字母O时,我得到字符串格式错误。我现在尝试了一些东西并且googles很多但仍然无法解决此错误
const string st1 = ("O");
var docketcheck = from q in db.Dockets
where q.DocketNum == txtDisplay.Text && q.Status.Equals(st1)
select q;
foreach (Docket d in docketcheck)
{
if (d.EngName.Equals("NULL"))
{
isEngNameNull = true;
break;
}
}
if (isEngNameNull)
{
txtDisplay.Clear();
txtDisplay.ReadOnly = false;
var engs = new EngStart();
engs.ShowDialog(this);
}
else
{
var sub = new machinesel();
txtDisplay.Clear();
sub.ShowDialog(this);
}
检查我的mssql数据库是否包含上述代码中的字母O的正确方法是什么
由于
答案 0 :(得分:0)
如果q.Status是一个字符串类型的列,那么你的方式很好。 如果你感兴趣,这是lambda的方法。
db.Dockets.Where(q => q.DocketNum == txtDisplay && q.Status == "O")
答案 1 :(得分:0)
你的代码看起来很好,当我在我的机器上测试了一个等效的查询时,它没有问题。
你可以稍微整理你的代码,这样它只会拉回匹配记录的数量,如下所示:
const string st1 = "O";
var docketcheck =
from q in db.Dockets
where q.DocketNum == txtDisplay.Text
where q.Status == st1
where d.EngName == "NULL"
select q;
if (docketcheck.Any())
{
txtDisplay.Clear();
txtDisplay.ReadOnly = false;
var engs = new EngStart();
engs.ShowDialog(this);
}
else
{
var sub = new machinesel();
txtDisplay.Clear();
sub.ShowDialog(this);
}
我希望这会有所帮助。