2017-03-11 10 views
0

Electronを使用して作成しているアプリケーションでは、次のようなテーブルがあります。私はjQueryの、DataTableのとSQL.jsを使用しています: -Electron、SQL.JS、jQueryとデータ型のデータを取り込みます

<table id="dataTable" class="display" cellspacing="0" width="100%"> 
    <thead> 
     <tr> 
      <th>Date</th> 
      <th>Code</th> 
      <th>Category</th> 
      <th>Hours</th> 
      <th>Cost</th> 
      <th>Billed</th> 
      <th>Description</th> 
     </tr> 
    </thead> 
    <tfoot> 
     <tr> 
      <th>Date</th> 
      <th>Code</th> 
      <th>Category</th> 
      <th>Hours</th> 
      <th>Cost</th> 
      <th>Billed</th> 
      <th>Description</th> 
     </tr> 
    </tfoot> 
</table> 

をテーブルを移入するために、次のコードが正しく動作していない: -

$(document).ready(function() { 

    var DB = null; 

    var t = $('#dataTable').DataTable(); 

     $(".bottomMenuContainer").on("click", ".loadButton", function(e) { 
      var fs = require('fs'); 
      var sql = require('sql.js'); 
      var bfr = fs.readFileSync(__dirname + '/../data/EliteData.db'); 
      DB = new sql.Database(bfr); 
      var stmt = DB.prepare("SELECT * FROM ProductEntries ORDER BY Category"); 
      while(stmt.step()){ 
       var row = stmt.getAsObject(); 
       t.rows.add([row.Date, row.Code, row.Category, row.Hours, row.Cost, row.Billed, row.Description]).draw(false); 
      } 
     }); 



}); 

を私は要求された未知パラメータを取得する「1」の行について0、列1のエラーメッセージが表示され、最終的に表示されたときにデータが表に広がってしまい、実際のデータベースに3の代わりに21の結果があります。

何が起こっているのでしょうか?

+1

3よりも21が得られた場合、 'step()'は結果を反復処理していないかのように見えます。各行ではなく各セルを反復しているように見えますが、私はSQL.JSを使用していませんが、whileループの中で 'コンソールログ(stmt)'を実行して、 – annoyingmouse

答えて

1

答えは、配列を作成し、データを配列にプッシュして、テーブルに追加することです。次に、テーブルを描画します。

  while(stmt.step()){ 
       var row = stmt.getAsObject(); 
       var result = []; 
        result.push(row.Date); 
        result.push(row.Code); 
        result.push(row.Category); 
        result.push(row.Hours); 
        result.push(row.Cost); 
        result.push(row.Billed); 
        result.push(row.Description); 
       t.row.add(result); 
      } 
      t.draw(); 
1

あなた自身が@Resurgent :-)をソートしてくれてうれしいです。私は少しは自分自身を再生していたし、このような単一の行の追加を廃棄けれども:

let res = db.exec("SELECT * FROM ProductEntries"); 
table.rows.add(res[0].values).draw(); 

Thisが働いJSFiddleで、SQL.jsへの導入のための感謝は、しかし、楽しいですね!

関連する問題