none
关于money型?(急急急) RRS feed

  • 问题

  • 问题是这样的:数据库的字段类型是money型,DropDownList的DataTextFormatString="{0:c}",我想将DropDownLis所显示的值通过编程的方式更新到数据库中,但C#中没有money数据类型,定义了一个string类型变量,得到提示是“无法将 char 值转换为 money。该 char 值的语法有误。”

    敬请各位高手赐教。
    youl
    2009年8月27日 3:10

答案

  • if (DropDownList1.SelectedItem != null)
    {
        Decimal value;
    
        if (Decimal.TryParse(DropDownList1.SelectedItem.Text, out value))
        {
            // 是合法的 Decimal, 并转换
            Response.Write(value.ToString());
        }
    
        // 或使用 Convert.ToDecimal
        // Decimal value = Convert.ToDecimal(DropDownList1.SelectedItem.Text);
    }

    知识改变命运,奋斗成就人生!
    • 已标记为答案 youer3 2009年8月27日 6:22
    2009年8月27日 5:32
    版主
  • 您好,可以用1、 (decimal)this.xxx
                     2、System.Convert.ToDecimal(this.xxx)
                     3、decimal.Parse(this.xxx)
    • 已标记为答案 youer3 2009年8月27日 6:22
    2009年8月27日 5:35
  • 你好,如果你是使用参数化存储过程,可以让数据库自己类型转换,你只要输入字符串就可以了。

            param = cmd.CreateParameter();
            param.ParameterName = "@ProPrice";
            param.Value = softSaleDetail.ProPrice; //String类型的变量
            param.DbType = DbType.Decimal;
            cmd.Parameters.Add(param);
    jon.valett@gmail.com
    • 已标记为答案 youer3 2009年8月27日 6:22
    2009年8月27日 6:19
    版主

全部回复

  • Sql 中 Money 对应 C# Decimal
    知识改变命运,奋斗成就人生!
    • 已建议为答案 Jiyuan 2009年8月27日 4:50
    2009年8月27日 3:16
    版主
  • 如X.X.Y版主所述,Money对应的是Decimal
    在保存在数据库的时候你添加参数直接将decimal的值赋值就可以了


    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年8月27日 3:27
    版主
  • 先谢了,回头再试一下。
    问题已经解决,多谢各位啦。


    youl
    2009年8月27日 3:46
  • 版主,出现新问题了。现在如何将DropDownList所显示文本转换成Decimal呢?用什么语句?
    Decimal textbook = this.ddl课本费.?????;
    怎样获得DropDownList所显示文本并转换成Decimal呢?


    youl
    2009年8月27日 5:18
  • if (DropDownList1.SelectedItem != null)
    {
        Decimal value;
    
        if (Decimal.TryParse(DropDownList1.SelectedItem.Text, out value))
        {
            // 是合法的 Decimal, 并转换
            Response.Write(value.ToString());
        }
    
        // 或使用 Convert.ToDecimal
        // Decimal value = Convert.ToDecimal(DropDownList1.SelectedItem.Text);
    }

    知识改变命运,奋斗成就人生!
    • 已标记为答案 youer3 2009年8月27日 6:22
    2009年8月27日 5:32
    版主
  • 您好,可以用1、 (decimal)this.xxx
                     2、System.Convert.ToDecimal(this.xxx)
                     3、decimal.Parse(this.xxx)
    • 已标记为答案 youer3 2009年8月27日 6:22
    2009年8月27日 5:35
  • 你好,如果你是使用参数化存储过程,可以让数据库自己类型转换,你只要输入字符串就可以了。

            param = cmd.CreateParameter();
            param.ParameterName = "@ProPrice";
            param.Value = softSaleDetail.ProPrice; //String类型的变量
            param.DbType = DbType.Decimal;
            cmd.Parameters.Add(param);
    jon.valett@gmail.com
    • 已标记为答案 youer3 2009年8月27日 6:22
    2009年8月27日 6:19
    版主