2017-04-03 1 views
0

もう一度ご迷惑をおかけして申し訳ありません...私はSQLiteデータベースに関する質問があります。 StringをTextに変換する方法を知る必要があるので、この情報をshowInputDialogを通してテーブルに追加することができます。プロジェクトでSQL - 文字列をテキストに変換する

は、私はすでにこのコードで問題なく文字列を整数に変換しました:

String input = advice.showInputDialog("Insert number of the experiment:"); 
//String to integer 
numExperiment = new Integer(input).intValue(); 

sql = "INSERT INTO Table VALUES ("+numExperiment+", "+column2+", "+column3+");"; 

しかし、今、私のデータベースでは、別のテーブルでは、私はこのテキスト列を持っていると私がする必要がありますshowInputDialogでデータを挿入します。私は最初の部分に同じ設定を使用しています...しかし、どのように進める?私はオンラインで検索しようとしましたが、これと似たような方法を見つけることができません。

String input = pGame.showInputDialog("Add a new game"); 

//Code that I don't know how to put 

sql2 = "INSERT INTO Game VALUES ("+nGame+");"; 

ここで、nGameは列の名前です。

アドバイスや解決策をお寄せいただきありがとうございます。良い一日を。

+0

あなたの生成されたSQL文字列が最初の場所で有効にする必要があります。あなたはsqliteのデバッグツール(またはそのマッパーのSQL標準)を開いて、あなたが生成した文字列と予想されるテキストフォーマットを比較します。第二に、値をプレーンストリングに連結することは決してありません。プログラムをSQLインジェクション攻撃に開放するためです。代わりにバウンド変数を使用してください。 –

答えて

0

文字列は単一引用符を使用したSQL文で直接使用することができます。

"INSERT INTO Game VALUES ('"+input+"');"; 
+1

しかし、入力があなたのコントロール([obligatroy XKCD link](https://xkcd.com/327/))の外から来た場合はこれを実行しないでください。代わりに、 "prepared statements"を検索してください。 – TripeHound

+0

@TripeHoundはい - 絶対に。 – notyou

関連する問題