【问题标题】:Display into textbox using if sentence使用 if 语句显示到文本框中
【发布时间】:2019-08-13 20:36:37
【问题描述】:

我正在将数据库中的一些数据显示到我的 Windows 窗体上的文本框中,我必须添加其他内容,但这取决于帐户类型(该信息保存在我的数据库中)。这意味着它是 DM(国内)或 CM(商业)。如果是 CM,我希望它收取额外的费用。 我会很感激任何帮助,谢谢。

OracleDataReader myReader = null;
OracleCommand myCommand = new OracleCommand("SELECT SUM(IMPORTE) AS corriente FROM MOVIMIENTOS WHERE CUENTA='"+txtIngreseCuenta3.Text + "'AND CONCEPTO=10", connectionString);

myReader = myCommand.ExecuteReader();

while (myReader.Read())
{
    txtCorriente.Text = (myReader["corriente"].ToString());
}

我正在使用此代码显示到文本框中,但我希望它从另一个表中获取帐户类型,如果它是 CM,则将一定金额添加到文本框中。

【问题讨论】:

标签: c# winforms textbox ado.net


【解决方案1】:

在您的情况下,我建议您使用 Execute Scalar 而不是 reader,因为您只从数据库返回一个值。但在您的情况下,如果您希望此代码正常工作,您需要将返回的值转换为正确的点网类型,然后填充文本框。

使用 ExecuteReader 的示例

//txtCorriente.Text = ((int)myReader["corriente"]).ToString();

private static void CreateCommand(string queryString,
    string connectionString)
{
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        connection.Open();

        SqlCommand command = new SqlCommand(queryString, connection);
        SqlDataReader reader = command.ExecuteReader();
        while (reader.Read())
        {
            txtCorriente.Text = ((int)reader["corriente"]).ToString();
            txtAnother.Text = ((decimal)reader["another"]).ToString();

            Console.WriteLine(String.Format("{0}", reader[0]));
        }
    }
}

使用 ExecuteScalar 的示例

static public int AddProductCategory(string newName, string connString)
{
    Int32 newProdID = 0;
    string sql =
        "INSERT INTO Production.ProductCategory (Name) VALUES (@Name); "
        + "SELECT CAST(scope_identity() AS int)";
    using (SqlConnection conn = new SqlConnection(connString))
    {
        SqlCommand cmd = new SqlCommand(sql, conn);
        cmd.Parameters.Add("@Name", SqlDbType.VarChar);
        cmd.Parameters["@name"].Value = newName;
        try
        {
            conn.Open();
            newProdID = (Int32)cmd.ExecuteScalar();
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }
    return (int)newProdID;
}

【讨论】:

  • 更像txtCorriente.Text = ((decimal)mycommand.ExecuteScalar).ToString(); 我们真的不知道 IMPORTE 列的数据类型所以只是猜测十进制。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-04
  • 1970-01-01
  • 1970-01-01
  • 2014-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多