• 締切済み

visualc++について

visualc++を使用し、Accessのデータベースを読み込むプログラムを作っています。 ボタンをクリックすると、TextBox1に入力されたされた文字を含むデータを検索するプログラムを作りたいのですが、うまく作ることが出来ません。現在作っているコードを記載しますのでどなたか教えて下さい。よろしくお願いします。 private: System::Void button1_Click(System::Object * sender, System::EventArgs * e) {  String * s; s = textBox1->Text; oleDbSelectCommand1->CommandText = "SELECT ID, name, jyanlu, chiiki,url, x, y, kai, hei FROM link0 WHERE chiiki LIKE '%仙台%'"; oleDbDataAdapter1->Fill(dataSet11); }

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

うまくいかない部分を具体的に説明しましょう たとえば 提示のコードで chiikiに『仙台』を含むにしたいが『仙台』を含まないものまで選択されるとか

k-u-r-o
質問者

補足

redfox63アドバイスありがとうございます。 申し訳ありませんが、プログラムの記述が間違っていました。 '%仙台%'";の部分は%s%";です。 うまくいかない部分は、 s = textBox1->Text;  でtextBox1に入力された文字をsに代入することは出来たのですが、SQL文の中の%s%が読み込まれずエラーが出てしまいます。どうかよろしくお願いします。

関連するQ&A

  • 簡単なプログラムにまとめる方法

    前回、同じようなプログラムを簡単にまとめる方法を教えて頂いたのですが新しい事で困ってしまいました。 説明が非常にへたくそなので、プログラムをそのまま書きます・・・・ スイマセン Private Sub TextBox1_1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1_1.GotFocus Me.TextBoxNum.Text = "1" End Sub Private Sub TextBox2_1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2_1.GotFocus Me.TextBoxNum.Text = "2" End Sub Private Sub TextBox3_1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox3_1.GotFocus Me.TextBoxNum.Text = "3" End Sub 上記のプログラム、TextBox○○○_1.KeyPressの○○○の部分が1から100まであるのですが、あまりにも行数が多くなって長くなるので、以下のプログラムで纏めたのですが、 Me.TextBoxNum.Text = "○○○" にフォーカスされたTextBox○○○_1の○○○を入れる方法はありますか? Private Sub TextBox1_1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1_1.GotFocus,TextBox2_1.GotFocus,TextBox3_1.GotFocus Me.TextBoxNum.Text = "○○○" End Sub 説明が下手くそでスイマセン、ほかに新しい方法でも有ればお願いします よろしくお願いしますm(__)m

  • C#でマスターから検索した値に対応する別列をラベルに表示したい

    こんばんわ。 C#のフォームのテキストボックスに[社員番号]を入力し、社員マスタから該当社員氏名を同じフォーム内のラベルに表示するという処理を行おうとしています。 以下のコードで、 [goButton]を押したあと、社員マスタの氏名をラベルに表示する部分の記述の仕方がわかりません。 社員マスタは[syainNo]と[simei]という2列のフィールドで構成されています。 private void Form1_Load(object sender, System.EventArgs e) { dataSet11.Clear(); sqldataAdapter1.Fill(dataSet11, "syainM"); } private void goButton_Click(object sender, System.EventArgs e) { int i; //カウンタ //検索する値が入力されていないとき if (textBox1.Text == "") { MessageBox.Show("検索する社員番号を入力してください"); return; } //先頭から検索 for (i = 0; i < dataSet11.Tables["syainM"].Rows.Count; i++) { if ( dataSet11.Tables["syainM"].Rows[i]["syainNo"].ToString() == textBox1.Text) { //ここでラベルに社員マスタの氏名を表示する return; } } } どなたかわかる方よろしくお願いします。

  • GridViewのデータソースの入れ方がわかりません

    OleDb.OleDbDataAdapter' が定義されていません DataSet' が定義されていません。 OleDb.OleDbConnection' が定義されていません。 OleDb.OleDbDataAdapter' が定義されていません 以上の エラーが出ます 定義の、意味がわかりません 教えてください お願いします WinXP Microsoft Visual Web Developer 2008 ASPX Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click Dim dAdp As OleDb.OleDbDataAdapter Dim dSet As DataSet = New DataSet("顧客台帳") Dim cn As OleDb.OleDbConnection = New OleDb.OleDbConnection( _ "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:\*******\*****.mdb;") 'データセットに取得し、DataGridViewに関連付ける dAdp = New OleDb.OleDbDataAdapter("SELECT * FROM 顧客台帳", cn) dAdp.Fill(dSet, "顧客台帳") Me.GridView1.DataSource = dSet.Tables("顧客台帳") End Sub

  • イベントハンドラ関数について

    現在VC++/CLR 2005 でプログラミングをしています。 基本的な事柄かもしれませんが、質問させてください  以下の2つのボタンのイベントハンドラ関数があった場合 //ボタン1のイベントハンドラ関数 private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) String^ str = textBox1->Text } //ボタン2のイベントハンドラ関数 private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { } ボタン2をクリックしたときの動作とボタン1の動作を同じにしたいと思っています。 その場合は private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) String^ str = textBox1->Text } //ボタン2のイベントハンドラ関数 private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { String^ str = textBox1->Text } のようにボタン2のイベントハンドラ関数をボタン1と同じように書けばいいのですが イベントハンドラ関数の処理が膨大になった場合を考えて省略する 書き方は無いのでしょうか?(以下の場合ですとエラーが起こってしまいます。) private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { button1_Click(); } 宜しくお願いします

  • OleDbDataAdapterのエラー

    OS:Windows7 Visual Studio2012Professional いつもこちらでお世話になっています。 OleDbプロバイダーのOleDbDataAdapterでAccessファイルからDataSetへデータを取込む作業をしています。 下記のコードで、一度はDataSetへデータを取り込めたのですが、接続文字列を変更したところ、変更前の接続文字列(パス)を参照に行ってしまいエラーになります。 リビルドしたり、プロジェクトを作成し直したりしましたが、やはり変更前の接続文字列を使用してしまいます。 【コード】 private void Form1_Load ( object sender, EventArgs e ) {  string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\hoge変更後\○○.mdb;"  string sql = @"SELECT * FROM Table;";  DataSet ds = new DataSet();  OleDbConnection cn = new OleDbConnection();  cn.ConnectionString = connectionString;  OleDbCommand cmd = new OleDbCommand();  using (OleDbDataAdapter da = new OleDbDataAdapter()) {  cmd.Connection = cn;  cmd.CommandText = sql;  da.SelectCommand = cmd;  da.Fill( ds ); ← ここで『System.Data.OleDb.OleDbException』エラー   } this.dataGridView.DataSource = ds.Tables[0]; } 【エラー】 System.Data.OleDb.OleDbException はハンドルされませんでした。 HResult=-2147467259 Message=パス 'D:\hoge前\○○.mdb' は正しくありません。パス名に間違いがないことと、ファイルが置かれたサーバーに接続していることを確認してください。 Source=Microsoft JET Database Engine ErrorCode=-2147467259 どなたか原因がおわかりになりますでしょうか。 どうぞよろしくお願いいたします。

  • 【C#】EventArgsについて

    いつもお世話になります。 C#に関して質問です。 VisualC#2008を使っています。 private void Form1_Load(object sender, EventArgs e) などで見かける、EventArgs e とは何を意味しているのでしょうか? 誰か教えていただけませんか? よろしくお願いします。

  • DataSet ds = new DataSet();

    DataSet ds = new DataSet(); System.Data.OleDb.OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter(); da.SelectCommand = cmd; da.Fill(ds); でデータを格納したときに、 重複データを省きたいのですが可能でしょうか? DataReader ならひとつひとつ格納していくので、 重複データを省くことができるのですが。

  • Parseという関数を使うとエラーが出る。

    今Microsoft VC++ 2010 Expressを勉強しているのですが、 textbox1に入れた文字列を textbox2に入れたいと思い、コマンドボタンを押したら入るようにしたのですが、エラーが出ます。 private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { char iVal = char::Parse(textbox1->Text); this->textBox2->Text = iVal; }

  • C#でテキストボックスをクリック→フォームが開く→フォームで設定した値

    C#でテキストボックスをクリック→フォームが開く→フォームで設定した値を元のテキストボックスに入力 こんな感じのことをC#でやりたいのですがよくわからないので教えてください。 1. 親をForm1、子をForm2とします 2. Form1のTextBox1をクリックするとForm2が開いきます 3. Form2で設定した値をForm2の「入力」ボタンを押すとForm2が閉じてTextBox1に値が入力されます というものです。 ここで、textBoxは「クリックしたコントロール名を取得してForm2に渡したい」のです。 テキストボックスがたくさんあるので、textBox1とか決まった名前ではありません。 この部分がわからないのです。 ------------------------------------------------------- Form1: private void textBox1_Click(object sender, EventArgs e) {  Form2 fromItem = new Form2(sender);  DialogResult deRet = fromItem.ShowDialog(); } Form2: public Form2(object sender) {  InitializeComponent();  object pSender = sender; } private void button_input_Click(object sender, EventArgs e) {  ((System.Windows.Forms.TextBox)pSender).text = "hoge"; } ------------------------------------------------------- この程度しかわかりません。 正しい方法を教えてください。よろしくお願いいたします。

  • 検索絞り込み方法について

    またまた行き詰まってお世話になります。 Access2000+VB.Net2003環境です。 データベースの中のデータを条件を指定して、合致するデータだけを表示させることをやっています。 下記のコードは、フォームを開いたときに一旦全件読み込んでデータグリッドに表示させ、フォームにおいてある条件を入力するテキストボックスから条件を入力して、検索ボタンを押したら該当データだけが表示されることをねらっています。試しに日付で開始と終了を指定して絞り込みに行くと再表示させたいところでエラーが起こります。(初期化まではうまくいっているように見えます)Fillメソッドの書き方が悪いのでしょうか?  最初は問題なく全件表示してくれるのですが、絞り込んだ後にうまくデータセットを更新するにはどうしたらいいのでしょうか?どうぞよろしくお願いいたします。 Private Sub MainDataDisp_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load OleDbDataAdapter1.Fill(objDsMainDisp, "T_メイン") End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim sdate As Date '検索開始年月日 Dim edate As Date '検索終了年月日 '検索SQLの定義 OleDbDataAdapter1.SelectCommand.CommandText = "SELECT * FROM T_メイン WHERE (T_メイン.日付 > sdate AND T_メイン.日付 < edate)" 'データセットを初期化して、データアダプタからデータを読み込む objDsMainDisp.Clear() OleDbDataAdapter1.Fill(objDsMainDisp, "T_メイン") End Sub

専門家に質問してみよう