具有动态给定值的ASP.NET INSERT语句

时间:2015-12-14 18:42:51

标签: sql asp.net

我想要INSERT INTO表值,其中一个是动态的。如下所示,我在.cs中写了这个:

 query = "SELECT " + outColumn + " FROM [Proizvodnja].[dbo].[v_time] WHERE textile LIKE '" + outTextile + "'";
 SqlConnection cn = new SqlConnection("Data Source=***.***.***.***, 1433; Initial Catalog=******;User ID=******;Password=******;");
        SqlCommand dataCommand = new SqlCommand(query, cn);

        cn.Open();
        SqlDataReader rdrOrder = dataCommand.ExecuteReader();
        while (rdrOrder.Read())
        {
            tv_min_String = rdrOrder.GetValue(0).ToString();
            tv_min = double.Parse(tv_min_String);

        }
        rdrOrder.Close();
        cn.Close();

我检查了第一个查询,没关系。现在,我希望在下一个插入statemet中使用tv_min值,插入表:

 <asp:SqlDataSource ID="insertOrder_plan_SqlDataSource" runat="server"
 InsertCommand="INSERT INTO [Production].[dbo].[order_plan] (...,[v_time]) VALUES (..., @tv_min)">
 ...
 <InsertParameters>
     <asp:Parameter Name="tv_min" DefaultValue="<%= tv_min %>/>" Type="Decimal"/>
 </InsertParameters>

当我输入需要apears错误消息的时候:

 An exception of type 'System.FormatException' occurred in mscorlib.dll but was not handled in user code
 Additional information: Input string was not in a correct format.

有什么不对?

1 个答案:

答案 0 :(得分:0)

尝试使用Double.TryParse而不是Double.Parse。它更安全

 Double.TryParse(tv_minString, tv_min))