0

テキストボックスの値を取得してMS SQLデータベースに書き込む方法を教えてください。データベース接続は完全に機能しています。テキスト ボックスの値を取得し、 Google Apps Script を使用してデータベースに書き込む方法を決定する必要があります。

現在、以下のコードはテキスト ボックスの値ではなく、単語 TEXT のみをデータベースに挿入します。

function doGet() {
  var app = UiApp.createApplication();

  var panel = app.createAbsolutePanel();
  var label = app.createLabel('Test Textbox');
  var text = app.createTextBox();
  var submit = app.createButton('Submit');

  panel.add(label);
  panel.add(text);
  panel.add(submit);

  app.add(panel);

  // Handlers
  var handler = app.createServerClickHandler('write');
  handler.addCallbackElement(panel);
  submit.addClickHandler(handler);

  return app;
} 

// submit text to database
function write(e) {
  var app = UiApp.getActiveApplication();
  var text = e.parameter.text;

  var conn = Jdbc.getConnection("jdbc:sqlserver://IPAddress:1433;" +
   "databaseName=name;userusername;password=password;");

  var stmt = conn.createStatement();
  var sql = "INSERT INTO dbo.tbl_Student (studentFName) VALUES ('text')";
  var count = stmt.executeUpdate(sql,1)//pass in any integer to get auto incremented IDs back

  // check to see any auto generated keys come back. that is optional. 
  var rs = stmt.getGeneratedKeys();
  while(rs.next()) {
    Logger.log(rs.getString(1));
  }

  rs.close();
  stmt.close();
  conn.close();    

  return app.close();
}
4

2 に答える 2

1

渡されたテキスト ボックスの値を取得するには、テキスト ボックスの名前を作成する必要があります。

に変更var text = app.createTextBox();var text = app.createTextBox().setName('mytb');ます。

次に、ハンドラー関数で、 によってこれを取得できますvar text = e.parameter.mytb;

また、リテラル単語「テキスト」をデータベースに挿入しているだけだと思います。代わりに、次のようにテキスト変数を使用して文字列を作成してみてください。

var sql = "INSERT INTO dbo.tbl_Student (studentFName) VALUES ("+text+")";

于 2013-02-06T21:59:51.563 に答える
0

機能したコード:

function doGet() {
  var app = UiApp.createApplication();

  var panel = app.createAbsolutePanel();
  var label = app.createLabel('Test Textbox');
  var text = app.createTextBox().setName('mytb').setId('mytb');
  var submit = app.createButton('Submit');

  panel.add(label);
  panel.add(text);
  panel.add(submit);

  app.add(panel);

  // Handlers
  var handler = app.createServerClickHandler('write');
  handler.addCallbackElement(text);
  submit.addClickHandler(handler);

  return app;
}  

// submit text to database
function write(e) {
  var app = UiApp.getActiveApplication();
  var textbox = app.getElementById('mytb');
  var text = e.parameter.mytb;

  var conn = Jdbc.getConnection("jdbc:sqlserver://IPAddress;" +
   "databaseName=database;user=user;password=password;");

  var stmt = conn.createStatement();
  var sql = "INSERT INTO dbo.tbl_Student (studentFName) VALUES ('"+text+"')";
  var count = stmt.executeUpdate(sql,1)//pass in any integer to get auto incremented IDs back

  // check to see any auto generated keys come back. that is optional. 
  var rs = stmt.getGeneratedKeys();
  while(rs.next()) {
    Logger.log(rs.getString(1));
  }

  rs.close();
  stmt.close();
  conn.close();

  return app.close();
}
于 2013-02-12T18:53:33.390 に答える