我是否正确将值插入SQL DB?

时间:2016-01-20 03:58:36

标签: c# sql-server

public void save(string val)
{
    var insertval = "insert into test_table values(" +val+")";

    try
    {
        DBcon.ConnectionOpen();
        SqlDataReader sqlReader = command.ExecuteReader();

        SqlCommand cmd1 = new SqlCommand(insertval, DBcon.SqlConn);
        sqlReader.Close();

        cmd1.ExecuteNonQuery();
        cmd1.Dispose();
    }
    catch (Exception ex)
    {
        throw ex;
    }
    finally
    {
        DBcon.ConnectionClose();
    }
}

2 个答案:

答案 0 :(得分:4)

sql语句中有错误。我们不知道val的值是什么,但它应该在var insertval = "insert into test_table values('" +val+"')"; 中,就像我写的那样。

'

另外使用SqlCommand.Parameters来阻止sql注入,在这种情况下你不需要 var insertval = "insert into test_table values(@Value)";

  cmd1.Parameters.AddWithValue("@Value", val);

在声明SqlCommand后添加此内容。

SELECT bot_id, name, username 
FROM bots 
ORDER BY substring_index(name, '#', 1),  substring_index(name, '#', -1) + 0

答案 1 :(得分:1)

不,不要这样做。请看这一行var insertval = "insert into test_table values(" +val+")";并告诉我当有人将);DROP TABLES作为他们的名字时会发生什么?