Sql server 文本框中显示的db的十进制值

Sql server 文本框中显示的db的十进制值,sql-server,vb.net,tsql,stored-procedures,visual-studio-2012,Sql Server,Vb.net,Tsql,Stored Procedures,Visual Studio 2012,我有一个计算十进制(18,1)数据类型值的存储过程。我想把它放在我的vb.net程序的文本框中 Dim conn As New SqlConnection("Data Source=a\SQLEXPRESS;Initial Catalog=b;Integrated Security=TRUE") Dim cmd As SqlCommand = New SqlCommand("dbo.c", conn) cmd.CommandType = CommandType.StoredProcedure c

我有一个计算十进制(18,1)数据类型值的存储过程。我想把它放在我的vb.net程序的文本框中

Dim conn As New SqlConnection("Data Source=a\SQLEXPRESS;Initial Catalog=b;Integrated Security=TRUE")
Dim cmd As SqlCommand = New SqlCommand("dbo.c", conn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add("@d", SqlDbType.Decimal)
cmd.Parameters(@d").Direction = ParameterDirection.Output
我想设置SqlDbType.Decimal会让我的文本框中的小数点不起作用,我只得到一个整数(数据库中的原始值是2.5,文本框中的值是3)

在我搜索解决方案的过程中,如果发现此问题

Dim parameter As New SqlParameter("@Price", SqlDbType.Decimal)
With parameter
.Value = 3.1416
.Precision = 8
.Scale = 4
End With

但是我不能应用这个,因为我有一个输出参数。我用我的参数切换了“@price”,但除了“Label1”之外,什么也没有显示。我真的需要在我的文本框中显示我的十进制数,需要帮助。

我刚刚找到答案。我将SqlDbType.decimal更改为SqlDbType.Float,它可以工作

我刚刚找到了答案。我将SqlDbType.decimal更改为SqlDbType.Float,它可以工作

StoredProcess中的参数是如何声明的?“Decimal(18,1)输出为”当我在sql server中运行sp时,我会打印出十进制值。您是否尝试将输出参数的比例和精度设置为18和1?默认情况下,这些值为零。StoredProcedure中的参数是如何声明的?“Decimal(18,1)OUTPUT as”(十进制(18,1)输出为“当我在sql server中运行sp时,我会打印出十进制值。您是否尝试将输出参数的比例和精度设置为18和1?默认情况下,这些值为零