database - SQL SERVER 中的 String 到 Money 数据类型

标签 database visual-studio-2010 sql-server-2005 parameters sqlclient

我试图将 TextBox 中的 STRING 插入到具有 MONEY DATA TYPECOLUMN 但是出现错误提示并显示:发生错误,无法添加患者!不允许从数据类型 nvarchar 到数据类型 money、表“TblName”、列“pTotalDue”的隐式转换。使用 CONVERT 函数运行此查询

我怎样才能转换它?谁能告诉我怎么做?

这是我的代码:

Private Function INSERT() As String
        Dim SQLcon As New SqlConnection
        Dim SQLdr As SqlDataReader
        Try
            SQLcon.ConnectionString = "Data Source=#####;Initial Catalog=#####;Persist Security Info=True;User ID=#####;Password=#####"
            Dim SQLcmd As New SqlCommand("INSERT INTO dbo.Patients" & _
                                         "(pIDNo,pLName,pFName,pMI,pSex,pStatus,pTelNo,pDocID,pAddr,pStreet,pBarangay,pCity,pProvince,pLNameKIN,pFNameKIN,pMIKIN,pRelationKIN,pTotalDue)" & _
                                         "VALUES(@pIDNo,@pLName,@pFName,@pMI,@pSex,@pStatus,@pTelNo,@pDocID,@pAddr,@pStreet,@pBarangay,@pCity,@pProvince,@pLNameKIN,@pFNameKIN,@pMIKIN,@pRelationKIN,@totaldue)", SQLcon)
            SQLcmd.Parameters.AddWithValue("@pIDNo", txtPNumber.Text)
            SQLcmd.Parameters.AddWithValue("@pLName", txtLname.Text)
            SQLcmd.Parameters.AddWithValue("@pFName", txtFname.Text)
            SQLcmd.Parameters.AddWithValue("@pMI", txtMI.Text)
            SQLcmd.Parameters.AddWithValue("@pSex", txtPatientSex.Text)
            SQLcmd.Parameters.AddWithValue("@pStatus", txtStatus.Text)
            SQLcmd.Parameters.AddWithValue("@pTelNo", txtPatientTelNo.Text)
            SQLcmd.Parameters.AddWithValue("@pDocID", txtPatientDoctor.Text)
            SQLcmd.Parameters.AddWithValue("@pAddr", txtStreetNumber.Text)
            SQLcmd.Parameters.AddWithValue("@pStreet", txtStreetName.Text)
            SQLcmd.Parameters.AddWithValue("@pBarangay", txtBarangay.Text)
            SQLcmd.Parameters.AddWithValue("@pCity", txtCity.Text)
            SQLcmd.Parameters.AddWithValue("@pProvince", txtProvince.Text)
            SQLcmd.Parameters.AddWithValue("@pLnameKIN", txtKinLname.Text)
            SQLcmd.Parameters.AddWithValue("@pFnameKIN", txtKinFname.Text)
            SQLcmd.Parameters.AddWithValue("@pMIKIN", txtKinMI.Text)
            SQLcmd.Parameters.AddWithValue("@pRelationKIN", txtRelationToPatient.Text)
            SQLcmd.Parameters.AddWithValue("@totaldue", txtTotalDue.Text)
            SQLcon.Open()
            MsgBox("Patient Added!", MsgBoxStyle.Information)
            SQLdr = SQLcmd.ExecuteReader()
        Catch ex As Exception
            MessageBox.Show("Error Occured, Can't Add Patient!" & ex.Message)
        Finally
            SQLcon.Close()
        End Try
        Return ""
    End Function

顺便说一句,我目前使用的 SQL SERVER 版本是 2005。

最佳答案

尝试改变这一行:

SQLcmd.Parameters.AddWithValue("@totaldue", txtTotalDue.Text)

为此:

SQLcmd.Parameters.Add("@totaldue", SqlDbType.Money).Value = Decimal.Parse(txtTotalDue.Text)

关于database - SQL SERVER 中的 String 到 Money 数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14887362/

相关文章:

mysql - ruby rails : Datatype foreign key

sql-server - 从 TFS 和 Visual Studio 数据库项目生成更改脚本

c - snprintf 和 Visual Studio 2010

sql - 获取每组的前 1 行

sql - 如何解锁 SQL Server 2005 Management Studio 中的用户帐户?

sql-server-2005 - 如何在Microsoft SQL Server 2005 Reporting Services中的多个项目之间共享数据源并保持Visual Studio "Preview"?

mysql - Mysql时间范围选择

c# - 如何删除电话号码的格式?

c++ - 为什么使用 std::forward 禁用模板参数推导?

visual-studio-2010 - MSBuild 为错误的框架版本创建附属程序集