转换nvarchar值时转换失败

时间:2014-08-07 10:45:48

标签: c# sql-server

    void verileriBas(string startIP, string endIP, string locID)
    {
        SqlConnection con = new SqlConnection(@"Data Source=W7\SQLEXPRESS1;Initial Catalog=GeoLocation1;Integrated Security=true;");
        con.Open();
       //ask if (con.State != ConnectionState.Open) con.Open(); 
        SqlCommand cmd = new SqlCommand("Insert into dbo.Blocks (startIP,endIP,locID )values(@startIP,@endIP,@locID)", con);
        cmd.Parameters.AddWithValue("@startIP", startIP);
        cmd.Parameters.AddWithValue("@endIP", endIP);
        cmd.Parameters.AddWithValue("@locID", locID);
        cmd.ExecuteNonQuery();
        con.Close();


    }

1 个答案:

答案 0 :(得分:1)

  

所有数据类型为int

你的问题完全不清楚,但我想你试着用句子说;您的所有列都在数据库中int

但是让我们来看看你的方法定义;

void verileriBas(string startIP, string endIP, string locID)

您的值为string。您尝试将它们插入int类型的列中。你的SQL服务器说:

  

嘿,您尝试在数字列中插入字符值。

显然是不允许的。数字列类型用于数值,字符列类型用于字符值。使用适当的列类型来表示正确的值类型。

您有2个选项;

  • 如果真正数值或
  • ,则将字符串解析为整数
  • 将数据库列类型更改为字符类型,以将值保存为字符串