【发布时间】:2017-01-10 15:48:08
【问题描述】:
我有 3 个文本框接收来自 3 个 SQL 查询的 int 值,这些查询已经使用了ROUND() 函数。但是文本框中的结果返回 4 个小数点。即我需要值 xxxxx.xx,但 SQL 查询却返回 xxxx.xxxx。
这是我的代码
private void totalRef_btn_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("Data source=10.0.0.3,1434;Initial Catalog=client_orders_test;**Logins omitted**");
SumTotalquery = "Select ROUND(SUM(value),2) from costings_cur";
SumExVatquery = "Select ROUND(SUM(value-(value*14/100)),2) from costings_cur";
SumVatquery = "Select ROUND(SUM(value*14/100),2) from costings_cur";
SqlCommand totalQry = new SqlCommand(SumTotalquery, conn);
SqlCommand exVatQry = new SqlCommand(SumExVatquery, conn);
SqlCommand vatQry = new SqlCommand(SumVatquery, conn);
conn.Open();
SqlDataReader DR1 = totalQry.ExecuteReader();
if (DR1.Read())
{
total_txtbox.Text = DR1.GetValue(0).ToString();
}
conn.Close();
conn.Open();
SqlDataReader DR2 = exVatQry.ExecuteReader();
if (DR2.Read())
{
exvat_txtbox.Text = DR2.GetValue(0).ToString();
}
conn.Close();
conn.Open();
SqlDataReader DR3 = vatQry.ExecuteReader();
if (DR3.Read())
{
vat_txtbox.Text = DR3.GetValue(0).ToString();
}
conn.Close();
}
我什至尝试过使用这个:
exvat_txtbox.Text = DR2.GetValue(0).ToString().Trim();
提前致谢
【问题讨论】:
-
DR1.GetValue(0).ToString("#.##");? -
stackoverflow.com/questions/10380197/… 的可能重复项——但你为什么要启动 3 个连接——你可以在一个连接/查询中完成所有这些操作,然后只返回 3 列。
-
您应该能够使用像
DR1.GetValue(0).ToString("F")这样的格式说明符。有关详细说明和其他选项,请参阅https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx -
@BryanWoodford 谢谢,但在这种情况下占位符不起作用。尝试使用 ToString("0.00");也没有运气..
-
@JiggsJedi 该问题与 sql 中的 sql 查询有关,而不是在远程查询数据库时。如果我在 SSMS 中使用我的初始查询,我会得到想要的结果。但不是来自我的申请。问题在于 C# 将结果返回到文本框。
标签: c# sql sql-server winforms visual-studio