如何检查来自不同数据库的 2 个数据以进行数据验证

问题描述 投票:0回答:1

目前正在使用 C# 语言在 Visual Studio 中开发一个停车应用程序。在付款表格中,有 2 个文本框,名为 tbMembership(保存会员 ID)和 tbRate(保存基于会员和车辆类型的停车费),以及 1 个名为 cbType(保存车辆类型 ID)的组合框。

我有一个用于名为 ParkingData 的付款表单的 SQL 数据库,其中包含以下字段:id、license_plate、vehicle_id、employee_id、hourly_rates_id、datetime_in、datetime_out、amount_to_pay。

根据客户的要求,每小时的停车费将根据车辆是否属于会员而有所不同。此外,计算基于车辆停放的小时数。

我尝试编写这样的代码,但它不起作用 `无效关税() {

        var harga = Global.db.HourlyRates.FirstOrDefault(x => x.value == Convert.ToDecimal(tbRate.Text));
        harga.vehicle_type_id = Convert.ToInt32(cbType.SelectedValue);
        harga.Membership.name = tbOwner.Text;

        if (harga != null)
        {
            tbRate.Text = harga.value.ToString();
        }
        
    }`

该代码的第一行有一个错误代码 即识别方法 'System.Decimal ToDecimal(System.String)' 方法,并且此方法无法转换为存储表达式。'

`无效关税() {

//在第一行 var harga = Global.db.HourlyRates.FirstOrDefault(x => x.value == Convert.ToDecimal(tbRate.Text)); harga.vehicle_type_id = Convert.ToInt32(cbType.SelectedValue); harga.Membership.name = tbOwner.Text;

        if (harga != null)
        {
            tbRate.Text = harga.value.ToString();
        }
        
    }`
c# sql-server vb.net visual-studio ado.net
1个回答
0
投票

Convert.ToDecimal,不能这样翻译

要解决此问题,您可以尝试单独检索值并在 C# 中而不是在 LINQ 查询中执行转换。这是您的代码的更新版本:

无效关税() { 十进制率 = Convert.ToDecimal(tbRate.Text); // 分别检索和转换汇率 int vehicleTypeId = Convert.ToInt32(cbType.SelectedValue); 字符串 ownerName = tbOwner.Text;

var harga = Global.db.HourlyRates.FirstOrDefault(x => x.value == rate && x.vehicle_type_id == vehicleTypeId);

if (harga != null)
{
    tbRate.Text = harga.value.ToString();
}

}

© www.soinside.com 2019 - 2024. All rights reserved.