如何在公式中使用 SQL 值

本文关键字:SQL | 更新日期: 2023-09-27 18:18:20

我有一个 C# winform 应用程序,其中包含一个公式。公式工作正常,但根据 SQL 表中的 id,公式中的数字可能会更改。

我怎样才能做到这一点?

我拥有的代码是:

private void button1_Click(object sender, EventArgs e) 
{
    decimal ufa1;
    decimal aav1; 
    decimal uft1;
    ufa1 = uft1 * aav1 * VALUE FROM SQL;  
}

我有一个以前的查询,它获得了我想要的值,但我无法将其集成到公式中。

获取 id 的代码是:

con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select prumos from dbo.modelos where id = '"+id+"'";
SqlDataReader dr = cmd.ExecuteReader();

新代码:由于依赖关系,我不得不将 select from id 更改为名为"prumos"的列,其整数值就像 id 一样,但它不会运行。

    con.Open();
    using (SqlCommand cmd = new SqlCommand("select prumos from dbo.modelos where prumos = @prumos", con))
    {
        cmd.Parameters.Add(new SqlParameter("prumos", prumos));
        ValueFromDB = decimal.Parse(cmd.ExecuteScalar().ToString());
    }

有什么解决办法吗?

如何在公式中使用 SQL 值

无需使用 DataReader,只需读取 以标量形式执行命令:

你可以做这样的事情:

public int GetValue(int id)
{
 ....
    con.Open();
    SqlCommand cmd = con.CreateCommand();
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = "select top 1 prumos from dbo.modelos where id = '"+id+"'";
    int value = int.Parse(cmd.ExecuteScalar().ToString());
    return value;
}

然后:

private void button1_Click(object sender, EventArgs e) 
{
    decimal ufa1;
    decimal aav1; 
    decimal uft1;
    ufa1 = uft1 * aav1 * GetValue(1);  
}

请注意,如果需要将 Id 发送到 GetValue() 函数,可以将其作为参数发送。

private void button1_Click(object sender, EventArgs e) 
{
    decimal ufa1;
    decimal aav1; 
    decimal uft1;
    con.Open();
    SqlCommand cmd = con.CreateCommand();
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = "select prumos from dbo.modelos where id = '"+id+"'";
    //SqlDataReader dr = cmd.ExecuteReader();
    //decimal ValueFromDB = (decimal)cmd.ExecuteScalar();
    decimal ValueFromDB = Decimal.Parse(cmd.ExecuteScalar().ToString());

    ufa1 = uft1 * aav1 * ValueFromDB ;  
}

<小时 />甚至更好:

    private void button1_Click(object sender, EventArgs e)
    {
        decimal ufa1;
        decimal aav1;
        decimal uft1;
        decimal ValueFromDB;
        using (SqlCommand cmd = new SqlCommand("select prumos from dbo.modelos where id = @ID", con))
        {
            cmd.Parameters.Add(new SqlParameter("ID", id));
            ValueFromDB = Decimal.Parse(cmd.ExecuteScalar().ToString());
        }
        ufa1 = uft1 * aav1 * ValueFromDB;
    }
相关文章:
  • 没有找到相关文章