2016-03-30 4 views
0

データベースからデータを選択して、その値を文字列に保存して、後でプログラムで使用しようとしています。私は読者など何かを使わなければならないと信じていますか?クエリを選択して変数に保存する

これは正常に動作する選択クエリです。

​​

私はDB2データベース/ Connectionを使用しています。

私は基本的にデータベースからIDを変数strIDに格納したいと思っています。

すべてのアイデア?

+3

'var result = cmdSelectID.ExecuteQuery();' – dotctor

+0

注射の脆弱性を避けるためにDB2Command.Parametersを使用してstrWrongTextの値を指定する必要があります。 –

+0

こんにちは、毎回-1を返すようです。データベース内のIDが21であっても、@ Doctor – user6097989

答えて

0

はこれを試してみてください:

int ID = 0; 

string strSelect = ""; 
strSelect = "SELECT ID FROM Database.Table WHERE TEXT = '" + strWrongText + "' "; 

DB2Command cmdSelectID = new DB2Command(strSelect, db2Connection); 

ID = cmdSelectID.ExecuteScalar(); 
+0

はExecuteScalarを使用しているようです。暗黙的に型 'オブジェクト'を 'int'に変換できません。明示的な変換が存在します(キャストがありませんか?) – user6097989

+0

Iveはこれを解決することができました ID =(int)cmdSelectID.ExecuteScalar(); あなたの答えは正常に動作します ありがとう – user6097989

0
 int id; 
     string strSelect = ""; 
     strSelect = "SELECT ID FROM Database.Table WHERE TEXT = @TEXT;";  
     using(DB2Command cmdSelectID = new DB2Command(strSelect, db2Connection)) 
    { 
     cmdSelectID.Parameters.Add("@TEXT", "strWrongText"); 
     using(DB2DataReader dr = cmdSelectID.ExecuteReader()) 
    { 
     while(dr.Read()) 
     { 
     id = (int)dr["ID"]; 
     } 
    } 
    } 

は常にSQLインジェクションを防ぐためにパラメータを使用します。 usingキーワードに注目してください。オブジェクトは正しく配置されています。あなたはデータベースから値を読み込み、それをあなたのデータ型に変換し、それをid変数intに代入します。

+0

こんにちは、これはただ0を返します – user6097989

関連する問題