使文本框默认值等于 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 验证之外,还要检查此信息。
祝你好运!
我已将我的文本框设置为 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 验证之外,还要检查此信息。
祝你好运!