我一直在写一些简单的 c#,我通常使用相同的类和函数来插入和获取数据库中的数据。
例如,这是我的功能:
public bool insert_and_ConfirmSQL(String Query, String comments)
{
bool success = false;
NpgsqlCommand cmd = new NpgsqlCommand();
NpgsqlConnection mycon = new NpgsqlConnection();
string connstring = String.Format("Server={0};Port={1}; User Id={2};Password={3};Database={4};timeout=1000;CommandTimeout=120;", tbHost, tbPort, tbUser, tbPass, tbDataBaseName);
mycon.ConnectionString = connstring;
cmd = mycon.CreateCommand();
cmd.CommandText = Query;
mycon.Open();
int temp = 0;
try
{
temp = cmd.ExecuteNonQuery();
success = true;
}
catch
{
if (mycon.State == ConnectionState.Open)
{
mycon.Close();
}
}
return success;
}
现在我知道这个查询对于注入是不安全的,我需要使用准备好的语句。但是我不明白当我的每个查询都不同时我应该如何处理这个问题?是否有一个“通用”功能可以插入任何查询并“准备”它?