使文本框默认值等于 0

Make textbox default value equals to 0

我已将我的文本框设置为 0

<p>Credit Balance: </p><asp:TextBox ID="txtCredit" runat="server" style="width:70px" Text = "0"></asp:TextBox>

我的代码是这样的:

scn.Open();

SqlCommand cmd = new SqlCommand("SELECT CreditRequest FROM UserData WHERE Username=@Username", scn);

cmd.Parameters.Add("@Username", SqlDbType.NVarChar).Value = Session["New"];

object value = cmd.ExecuteScalar();

if (value != null)
{
    txtCredit.Text = Convert.ToDecimal(value).ToString("#,##0.00");
}

我想要发生的是,如果它有价值,它就会显示它。如果 none,默认值等于 0。但是我收到错误消息

Object cannot be cast from DBNull to other types.

我怀疑,值是 DBNull,你可以使用 Convert.IsDBNull 方法来防止 DBNull

if (!Convert.IsDBNull(value))
{
    txtCredit.Text = Convert.ToDecimal(value).ToString("#,##0.00");
}

不使用 null,而是使用 DBNull。

if(value != DBNull)
{
// update textbox
}

您应该考虑的事项:

  • 没有设置文本属性,而是发送了它的 VALUE。
  • 在转换之前验证您的价值。您正在将它与 null 进行比较,但它是一个 DBNull。除了 Null 验证之外,还要检查此信息。

祝你好运!