2016-06-28 3 views
0

現在、バックエンドにC#コードで最初のInfoPathフォームを作成しています。それはSQL Server DBにも接続しています。フォームが開くと、SQL Serverデータベースに接続し、ユーザーの名前とタイトルを自動的に取得します。しかし、私はむしろ非常に単純な作業のように思えるものに執着しています。Infopath 2013でC#を使用してADOQueryConnectionを読み取る方法

クエリを実行した後、ADO Connectionからデータを読み取るにはどうすればよいですか?以下は私のコードです。これはとてもシンプルなようですが、私はそれを理解できないようです。

AD_Mirrorには、DBと適切なテーブルへのADO接続が含まれています。 CustomQueryはフォームを開いているユーザーがこれをフィルタリングしようとしています。

私は必要なユーザー情報を理論的に把握して実行します。それから私はどのように進むべきかについては不明です。私はすべての答えを探してきたので、どんな助けも大歓迎です。

 //ADO Attempt 
     AdoQueryConnection connection = 
     (AdoQueryConnection)DataConnections["AD_Mirror"]; 

     string customQuery = " where SamAccountName = '" + userName + "'"; 
     string origCommand = connection.Command.ToString(); 
     //set the query to use the custom command 
     connection.Command = origCommand + customQuery; 
     //annnnnnddddd, now we run the query using our shiny new command   
     connection.Execute(); 
+0

) – MethodMan

+0

私はそれを見ました...しかし、私はmyAdoQueryConnection.Execute();の後に何をしますか?私は受け取ったデータを受け取り、自分のフォームにフィールドを取りたいと思っています。 – ISUTri

+0

だから私は基本的に上記のものを使い、それをDataReaderのようなものと混ぜる方法を理解する必要があります。私は仕事に何かを得ることができなかったし、読者はとにかく正しい考えではないかもしれません。 – ISUTri

答えて

0

私はSQLクエリから接続を切り離さなければなりませんでした。その後にデータをプルするデータテーブルに引っ張る。

string queryString = origCommand + customQuery; //Pull in Query 
    string conn = connection.Connection; //Grab Connection 

        using (OleDbConnection connection1 = new OleDbConnection(conn)) 
      { 
       OleDbCommand command = new OleDbCommand(queryString, connection1); 
       command.CommandType = CommandType.Text; 

       try 
       { 
        connection1.Open(); 
        OleDbDataAdapter adapter = new OleDbDataAdapter(command); 
        adapter.Fill(oSet); 

          string firstName = (oSet.Tables[0].Rows[0].ItemArray[9]).ToString(); 
        firstName = firstName.Trim(); 

マイクエリが列9の最初の名前(したがって9のItemArray上記)を有しています。必要に応じてこれをループするように設定することもできますが、そうしなかったのです。あなたは[MSDNオンライン例AdoQueryConnection.Commandプロパティ](https://msdn.microsoft.com/en-us/library/microsoft.office.infopath.adoqueryconnection.command.aspxをチェックアウトしなかった

おかげ

関連する問題