我正在尝试从一堆文本框中提取数据,然后将它们插入到数据库中,除了两个之外一切都很好,一个是如果它们为null则会出错,但现在不是问题。
当我有一个应该采用数字的文本框时,它说它无法将varchar转换为float。如果我直接在SQL Server中使用插件(使用SQL Server 2008),插入工作,所以我知道它是代码中的东西。
我的文本框很简单:
<asp:TextBox id="CID" runat="server"></asp:TextBox>
我从文本框中提取信息的代码是:
float custID = float.Parse(CID.Text);
我是C#的新手,所以如果你能帮助我,那就更好,但任何帮助都有效。 thx
编辑:这是我得到的错误行:
Line 63:
Line 64: sqlConnection1.Open();
Line 65: cmd.ExecuteNonQuery();
Line 66: sqlConnection1.Close();
Line 67: }
要求的代码:
cmd.CommandText = "INSERT INTO Customer VALUES('@custID', @mastName, @custName, @addrLn1, @addrLn2, @cCity, @cState, @cZip, @cZip4, @cCountry, @cusSince, @renewalDate, @cNotes, @salesRep, @conMem, @ilsProd, @numbSites, @guardItEsc)";
cmd.CommandType = CommandType.Text;
cmd.Connection = sqlConnection1;
解析w /参数:
float custID = float.Parse(CID.Text);
cmd.Parameters.AddWithValue("@custId", custID);
答案 0 :(得分:4)
@custID在它周围有单引号,所以它被视为varchar(字面意思是试图插入字符串“@custID”)。只需删除引号。
cmd.CommandText = "INSERT INTO Customer VALUES(@custID, @mastName, @custName, @addrLn1, @addrLn2, @cCity, @cState, @cZip, @cZip4, @cCountry, @cusSince, @renewalDate, @cNotes, @salesRep, @conMem, @ilsProd, @numbSites, @guardItEsc)";
答案 1 :(得分:1)
检查空CID.Text
和/或格式问题,例如:15,4(错误) - &gt; 15.4(好的!)
<强> EDIT1:强>
您似乎忘记了在myCommand.Parameter.AddWithValue("@value",parsedValue);
答案 2 :(得分:1)
'@custID'
应为@custID
。