2015-03-19 52 views
0

我正在使用PostgreSQL。我有如下方法,我需要創建一個參數數組並將其傳遞給下面的方法。我怎樣才能做到這一點請建議我如何在PostgreSQL中創建NpgSqlParameterArray

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

你喜歡這個創建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} 
     } 

然後將它作爲PARAM。

cmd.Parameters.AddRange(param) 

你有什麼錯誤嗎?

+0

感謝您的反應,你的方式不適合我的要求請看看我的問題我已經改變了它,你可能會清除我的問題 – user3728743 2015-03-19 13:14:11

+0

是的先生我做過但我有一個錯誤,像'System.NullReferenceException'「對象引用未設置爲對象的實例「。在我的幫助方法中,我做了如下所示的註釋 – user3728743 2015-03-20 05:55:47

+0

String query =「select * from t where name =:value1 and psd =:value2」; NpgsqlParameter [] param = new NpgsqlParameter [] {new NpgsqlParameter {ParameterName =「value1」,Value =「ss」},new NpgsqlParameter {ParameterName =「value2」,Value =「1234」} }; postgreHelper.ExecuteNonQuerywithReturnStatement(query,CommandType.Text,param);請幫助我 – user3728743 2015-03-20 05:58:57

相關問題