首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

如何避免decimal类型或者money类型的小数位数

2012-04-25 
如何处理decimal类型或者money类型的小数位数存储过程:----------------------------------------ALTER PR

如何处理decimal类型或者money类型的小数位数
存储过程:
----------------------------------------
ALTER PROCEDURE [dbo].[QueryPrice]
@NAME varchar(50)
,@PRICE decimal(18,2) OUTPUT
AS
BEGIN
SET @PRICE = (SELECT PRICE FROM INFO WHERE NAME =@NAME)
END
---------------------------------------

Form内调用:
--------------------------------------------
  connection.Open();
  SqlCommand command = new SqlCommand();
  command.Connection = connection;
  command.CommandText = "QueryPrice";
  command.CommandType = CommandType.StoredProcedure;
  command.Parameters.AddWithValue("@NAME", comboName.Text);  
  command.Parameters.Add("@PRICE", SqlDbType.Decimal).Direction = ParameterDirection.Output;
  command.ExecuteNonQuery();
  textPrice.Text = command.Parameters["@PRICE"].Value.ToString();
  connection.Close();
--------------------------------------------------

问题:
为什么textPrice.Text (TextBox控件)显示不了小数部分,如何显示小数部分。

另外说明,我原来PRICE在数据库中是使用money类型,但小数位一直是4位,不知道怎么调整成2位,按上面相同的方法处理,textPrice.Text也是显示4位小数。

谢谢!












[解决办法]
楼主你在程序中用断点跟踪一下这个command.Parameters["@PRICE"].Value.ToString()
有木有小数点
[解决办法]

SQL code
ALTER PROCEDURE [dbo].[QueryPrice]@NAME varchar(50),@PRICE decimal(18,2) OUTPUTASBEGINSET @PRICE = (SELECT round(PRICE,2) FROM INFO WHERE NAME =@NAME)END 

热点排行