.NET - 来自非用户输入的MySql查询参数

时间:2016-02-16 11:32:12

标签: c# mysql query-parameters

我知道在查询中使用参数会阻止sql注入(从用户输入获取值时)。但是,如果我想构建一个使用预定义值的查询,例如

    public static Bitmap loadView(View v) {
    Bitmap b = Bitmap.createBitmap(width , height, Bitmap.Config.ARGB_8888);
    Canvas c = new Canvas(b);
    v.layout(0, 0, v.getWidth(), v.getHeight());
    v.draw(c);
    return b;
}

我可以不用这个吗?

    void saveFile(Bitmap bitmap) {
    String extr = Environment.getExternalStorageDirectory().toString() +   File.separator + "Folder";
    String fileName = new SimpleDateFormat("yyyyMMddhhmm'_bitmap.jpg'", Locale.US).format(new Date());
    File myPath = new File(extr, fileName);
    FileOutputStream fos = null;
    try {
        fos = new FileOutputStream(myPath);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
        fos.flush();
        fos.close();
        MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, "Screen", "screen");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

在这种情况下是否有必要使用参数?

更新

我也可以这样做吗?

MySqlCommand Command = Connection.CreateCommand();
Command.CommandText = "SELECT employee_address FROM employees WHERE employee_name = @employee_name";
Command.Parameters.AddWithValue("employee_name", "John");

1 个答案:

答案 0 :(得分:0)

我建议始终使用参数。使用字符串很简单,但猜猜你有一个布尔值,十进制或日期。它有助于不考虑格式化。

使用参数,如果使用@ 0,@ 1,@ 2,则sql语句可以更短。您甚至可以使用param-array编写一个函数,该函数根据@ 0,@ 1,@ 2的顺序替换。这节省了大量代码。 (例如ExecuteSql(sql as string,paramarray myParameters as object)