我正在使用PostgreSql。我有如下方法,我需要创建一个参数数组并将其传递给下面的方法。我该怎么办,请建议我
internal static DataTable ExecuteParamerizedSelectcommand(String CommandName,CommandType cmdType,NpgsqlParameter[] param)
{
DataTable table = new DataTable();
try
{
NpgsqlConnection con = new NpgsqlConnection(constr);
NpgsqlCommand cmd = con.CreateCommand();
cmd.CommandType = cmdType;
cmd.CommandText = CommandName;
cmd.CommandTimeout = 120;
cmd.Parameters.AddRange(param);
if(con.State!=ConnectionState.Open)
{
con.Open();
}
using (NpgsqlDataAdapter da= new NpgsqlDataAdapter(cmd))
{
table = new DataTable();
da.Fill(table);
}
con.Close();
}
catch {
throw;
}
return table;
}
答案 0 :(得分:0)
您可以像这样创建NpgsqlParameter:
NpgsqlParameter p = new NpgsqlParameter("your_parameter_name", NpgsqlDbType.Array | NpgsqlDbType.Text);
p.value = your_parameter_name;
cmd.Parameters.Add(p);
如果需要传递NpgsqlParameter []作为参数。首先,你应该正确地形成你的NpgsqlParameter数组。
例如: 创建新变量:
new NpgsqlParameter[2]{
new NpgsqlParameter{ ParameterName="your_parameter_name1", Value=val1},
new NpgsqlParameter{ ParameterName="your_parameter_name2", Value=val2}
}
然后将其作为参数传递。
cmd.Parameters.AddRange(param)
你有任何错误吗?