2016-12-27 10 views
-1

EmbracaderoからADO.NET 2.0ドライバを使用し、リモートのInterbaseベース(http://cc.embarcadero.com/item/25497)に接続しようとしています。私は自分のデータベースにクエリを挿入しようとしていますが、クエリを挿入すると "オブジェクト参照がオブジェクトのインスタンスに設定されていません"がスローされます。誰も同じ問題を抱えていますか?CreateCommand()でADO.NET 2.0ドライバが例外をスローする

私が持っている:

public DbConnection GetConnection() 
    { 
     DbConnection con = new TAdoDbxConnection(); 
     con.ConnectionString = _connectionString; 

     return con; 
    } 

をして、私は:

 using (var conn = GetConnection()) 
     { 
      using (var cmd = conn.CreateCommand()) 
      { 
       cmd.CommandText = query; 

       var param = cmd.CreateParameter();// <---- here exception is thrown 
       NazwaChannel.ParameterName = "@param"; 
       NazwaChannel.Value = 1000; 
       NazwaChannel.DbType = DbType.Int32; 

       cmd.Parameters.Add(param); 

       conn.Open(); 
       cmd.ExecuteNonQuery(); 
       conn.Close(); 

      } 
     } 

クエリは、「表に挿入(TABLEID、ColumnNameに)値(GEN_ID(GenaratorName、1)、@param)のようなものです"

+1

まず、私たちはあなたを助けるためにいくつかのコードが必要です。また、あなたがnullpointerexceptionを持っているなら、[this](http://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it)を読んでください。 – RandomStranger

+0

ちょうど1つの提案。クエリ変数の値を取得し、DBに直接挿入して、問題がクエリに含まれているかどうかを確認します。さもなければ私はあなたのコードに間違って何も表示されません。 –

+0

Bas、nullpointexceptionではない – Anton

答えて

1

答えは次のとおりです。パラメータ作成の前に

conn.Open()を使用して
  • 代わりに「INSERT INTO TABLENAME(column1の、column2の、...)VALUES(@をvalue1、@値2、の。 ..) '' INSERT INTO TABLENAME(column1、column2、...)VALUES(?、?、...) 'を使用してください。
関連する問題