我在Sql Server中定义了两个money型的字段,在程序中向这个俩字段插入型数据时出错不能将int转为money,但是我如果用存储过程直接传入int就自动转换了,这是怎么回事我在程序中的sql语句该怎么写呢?(不用存储过程)

解决方案 »

  1.   

    CREATE TABLE TEMP01
    (
    ID INT IDENTITY,
    M1 MONEY,
    M2 MONEY
    )
    GO
    INSERT TEMP01(M1,M2)
    VALUES(13456,7893)
    GO
    SELECT * FROM TEMP01
      

  2.   

    我是在插入int型的数据出错的?
      

  3.   

    strsql="insert into TEMP01(M1,ME)values("+this.TextBox1.Text+","+this.textbox2.text+")";
      

  4.   


    这样写错误 
    System.Data.SqlClient.SqlException: 不允许从数据类型 varchar 到数据类型 money 的隐性转换(表 'eshopDB.dbo.Products',列 'MarketPrice')。请使用 CONVERT 函数来运行此查询。不允许从数据类型 varchar 到数据类型 money 的隐性转换(表 'eshopDB.dbo.Products',列 'NowPrice')。请使用 CONVERT 函数来运行此查询。 at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at eshop.ClassLib.CDataBase.ExecuteNonQuery(String m_Sql) in F:\eshop\ClassLib\CDataBase.cs:line 57
      

  5.   

    this.TextBox1.Text.Tofloat()
    this.textbox2.text.Tofloat()
      

  6.   

    Convert.ToFloat(this.TextBox1.Text);
    反正就是转成一个跟他相对应的。NET类型就是了!
      

  7.   

    Dim id As String
    id = "12"
    Dim m As Double
    m = CType(id, Double)
    ------------------------------------
    mututu
      

  8.   

    实在不行就用命令参数设置类型为SqlDbType.Money
      

  9.   

    Convert.ToDouble()吧,这个因该是可以的
      

  10.   

    Convert类理有个方法,tomoney()方法转换一下看看