2013-08-17 3 views
1

У меня проблема. Я являюсь средним разработчиком приложений .net, поскольку ранее я работал в PHP.Вставить DataTable непосредственно в базу данных PostGres через ODBC

Я хочу, чтобы вставить населенной DataTable непосредственно в базу данных через ODBC в .NET языка C#

Может кто-нибудь, пожалуйста, помогите мне сделать это.

Спасибо большое

if (_DataTable1.Rows.Count > 0) 
     { 
      int j=0; 
      for(int i =0 ; i < _DataTable1.Rows.Count ; i ++){     
       query = "Select * from Cards where ecode='" + _DataTable1.Rows[i]["ecode"] + "'"; 
       _DataTable2 = CentralConn.Select(query); 
       if (_DataTable2.Rows.Count > 0) 
       { 
        _DataTableUpdate.Rows.Add(DUpdateRow); 
        foreach (string name in Enum.GetNames(typeof(LocalToCentralFields))) 
        { 
         _DataTableUpdate.Rows[j][name] = _DataTable1.Rows[i][name]; 
        } 
        j++; 
       } 
       else { 
        _DataTableInsert.Rows.Add(DInsertRow); 
        foreach (string name in Enum.GetNames(typeof(LocalToCentralFields))) 
        { 
         _DataTableInsert.Rows[j][name] = _DataTable1.Rows[i][name]; 
        } 
        j++; 
       } 


      } 

CentralConn.TransactionInsertion (_DataTableInsert);

// Код для TransactionInsertion

public void TransactionInsertion(DataTable DT,string TableName) 
    { 

     OdbcCommand Command = connection.CreateCommand(); 
     Command.CommandText = "Insert"; 
     Transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted); 

     OdbcDataAdapter Adapter = new OdbcDataAdapter(); 
     Adapter.InsertCommand = new OdbcCommand(); 



    } 

Я застрял здесь немного, что делать .. Пожалуйста, руководство

ответ

1

Посмотрите .Net Data Provider for Postgresql

и более конкретно на функцию

// Setups the insert command. 
public void insertCmd() 
{ 
    string insertQuery = "INSERT INTO npdata VALUES (@key, @ndata)"; 
    NpAdapter.InsertCommand = new NpgsqlCommand(insertQuery, conn); 

    NpParam = NpAdapter.InsertCommand.Parameters.Add("@key", NpgsqlTypes.NpgsqlDbType.Text); 
    NpParam.SourceColumn = "key"; 
    NpParam.SourceVersion = DataRowVersion.Current; 

    NpParam = NpAdapter.InsertCommand.Parameters.Add("@ndata", NpgsqlTypes.NpgsqlDbType.Bigint); 
    NpParam.SourceVersion = DataRowVersion.Current; 
    NpParam.SourceColumn = "ndata"; 

} 
+0

Приложение, в котором я работаю, было написано на vb6 цели та t было синхронизировать электронные карты, созданные на разных воротах, в центральную базу данных. Я переписал код на C#, используя .net 4.0. –

+0

Я отредактировал сообщение, пожалуйста, проверьте @astander –

Смежные вопросы