C# 在ASPX页面上不会显示双精度
我试图在ASPX页面上显示下面查询的值(总计),结果一直是0。当我放入断点并调试时,总数应该等于15.0。该值在从中提取的MS SQL数据库中保存为十进制 .cs网页C# 在ASPX页面上不会显示双精度,c#,double,C#,Double,我试图在ASPX页面上显示下面查询的值(总计),结果一直是0。当我放入断点并调试时,总数应该等于15.0。该值在从中提取的MS SQL数据库中保存为十进制 .cs网页 public partial class Payment : System.Web.UI.Page { public double total; protected void Page_Load(object sender, EventArgs e) { var id = Request.
public partial class Payment : System.Web.UI.Page
{
public double total;
protected void Page_Load(object sender, EventArgs e)
{
var id = Request.Params["ID"];
System.Data.OleDb.OleDbConnection conn;
System.Data.OleDb.OleDbCommand cmd;
conn = new System.Data.OleDb.OleDbConnection("--");
cmd = new System.Data.OleDb.OleDbCommand();
conn.Open();
cmd.Connection = conn;
var sql = String.Format(@"select sum(PayAmt) as total from CurePay where CureID = '{0}'", id);
cmd.CommandText = sql;
double total = 0;
total = Convert.ToDouble(cmd.ExecuteScalar());
conn.Close();
.ASPX页
<%= total %>
从代码中可以看出,您使用了两个单独的变量名称“total”,一个是本地变量,一个是全局变量。本地版本正在更新,但全局版本正在页面上输出
public partial class Payment : System.Web.UI.Page
{
public double total; //<< keep this one
protected void Page_Load(object sender, EventArgs e)
{
var id = Request.Params["ID"];
System.Data.OleDb.OleDbConnection conn;
System.Data.OleDb.OleDbCommand cmd;
conn = new System.Data.OleDb.OleDbConnection("--");
cmd = new System.Data.OleDb.OleDbCommand();
conn.Open();
cmd.Connection = conn;
var sql = String.Format(@"select sum(PayAmt) as total from CurePay where CureID = '{0}'", id);
cmd.CommandText = sql;
double total = 0; // << remove the double keyword from this line
total = Convert.ToDouble(cmd.ExecuteScalar());
conn.Close();
公共部分类支付:System.Web.UI.Page
{
public double total;//从代码中可以看出,您使用的是两个单独的变量名称“total”,一个是本地变量,一个是全局变量。本地变量正在更新,但全局变量正在页面上输出
public partial class Payment : System.Web.UI.Page
{
public double total; //<< keep this one
protected void Page_Load(object sender, EventArgs e)
{
var id = Request.Params["ID"];
System.Data.OleDb.OleDbConnection conn;
System.Data.OleDb.OleDbCommand cmd;
conn = new System.Data.OleDb.OleDbConnection("--");
cmd = new System.Data.OleDb.OleDbCommand();
conn.Open();
cmd.Connection = conn;
var sql = String.Format(@"select sum(PayAmt) as total from CurePay where CureID = '{0}'", id);
cmd.CommandText = sql;
double total = 0; // << remove the double keyword from this line
total = Convert.ToDouble(cmd.ExecuteScalar());
conn.Close();
公共部分类支付:System.Web.UI.Page
{
public double total;//尝试使用标签来输出您的值
<asp:Label ID="lblValue" runat="server" />
使用此标签代替您的
尝试使用标签来输出您的值
<asp:Label ID="lblValue" runat="server" />
使用此选项而不是一种更传统的方法可能是在主页上放置一个,然后从页面加载功能分配它
<asp:Label ID="lblNumber" runat="server" />
protected void Page_Load(object sender, EventArgs e)
{
// database stuff
lblNumber.Text = total;
}
受保护的无效页面加载(对象发送方、事件参数e)
{
//数据库材料
lblNumber.Text=总计;
}
一种更为传统的方法可能是在主页上放置一个,然后从page_Load函数分配它
<asp:Label ID="lblNumber" runat="server" />
protected void Page_Load(object sender, EventArgs e)
{
// database stuff
lblNumber.Text = total;
}
受保护的无效页面加载(对象发送方、事件参数e)
{
//数据库材料
lblNumber.Text=总计;
}
您引用的是两个不同的变量,一个是全局变量,一个是局部变量。您将局部变量设置为0,但访问全局变量时,只需删除该行:
double total = 0;
您正在引用两个不同的变量,一个全局变量和一个局部变量。您正在将局部变量设置为0,但在访问全局变量时,只需删除该行:
double total = 0;
代码将被编译,因为在不同的作用域中有相似的命名变量是有效的。代码将被编译,因为在不同的作用域中有相似的命名变量是有效的。编辑得很好,我只是想问一下转换为双精度的问题。@kcray,没问题。我发现使用控件是格式化输出的一种更简单的方法nd允许您在以后使用样式和格式设置。编辑非常好,我只是想问一下如何转换为双精度。@kcray,没问题。我发现使用控件可以更容易地设置输出格式,并允许您在以后使用样式和格式设置。