使用C#将varchar转换为float时出错

我有一个问题,我试图在数据表中记录的值(类型为float)之间进行操作,问题是当我尝试在维护后使用组合框尝试在datable中更新值(文本框中的操作结果)时opération,它向我显示错误(System.Data.SqlClient.SqlException:'将数据类型varchar转换为float时出错。),所以我如何解决该问题!请帮助

这是我的代码的一部分,其中存在错误

library(data.table)
library(ggplot2)

windDT <- as.data.table(wind)
windDT$longitude <- rep(seq(112,154,by=0.05),681)
windDT$latitude <- rep(seq(-10,-44,by=-0.05),each=841)
windDT[wind < 0]$wind = NA

ggplot(windDT,aes(longitude,latitude))+
  geom_raster(aes(fill=wind))+
  scale_fill_continuous(na.value="transparent")+
  coord_fixed(ratio = 1)+
  theme_bw()
tanxueli 回答:使用C#将varchar转换为float时出错

您不能使用浮点整数等值,例如文本字段:

String query = "UPDATE Table_com SET Contents='" + textBox6.Text + "' WHERE Variable='" + comboBox5.Text + "'";

并且您的代码确实存在风险,您可以使用像这样的参数,不要使用字符串,并将值转换为float:

static void Main(string[] args)
        {
            var ConnectionString = "YOUR CONNECTION STRING";
            DataTable dt = new DataTable();
            using (SqlConnection con = new SqlConnection(ConnectionString))
            {
                String query = "UPDATE Table_com SET Contents=@contents WHERE Variable=@variable";

                using (SqlCommand cmd = new SqlCommand(query,con))
                {
                    cmd.CommandType = System.Data.CommandType.Text;

                    cmd.Parameters.Add("@contents",SqlDbType.Float).Value = Convert.ToDouble(textBox6.Text);
                    cmd.Parameters.Add("@variable",SqlDbType.NVarChar).Value = comboBox5.Text;

                    using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                    {
                        da.Fill(dt);
                    }
                }
            }

        }
,

这是我尝试引用Wiki可以回答的问题

 SqlConnection con = new SqlConnection(@"Data Source=DESKTOP-VEFPLGG\SQLEXPRESS;Initial Catalog=test;Integrated Security=True");    
 private void comboBox5_SelectedIndexChanged(object sender,EventArgs e)
    {

        DataTable dt = new DataTable();
        String query = "UPDATE Table_com SET Contents=@contents ";

            using (SqlCommand cmd = new SqlCommand(query,con))
            {
                cmd.CommandType = System.Data.CommandType.Text;

                cmd.Parameters.Add("@contents",SqlDbType.Float).Value = textBox6.Text;
                //cmd.Parameters.Add("@variable",SqlDbType.Float).Value = Convert.ToDouble(comboBox5.Text);

                using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                {
                    da.Fill(dt);
                }
            }
    }
本文链接:https://www.f2er.com/3110660.html

大家都在问