0

私はちょっとここで立ち往生しています。これを解決する方法が見つかりません。

私のローカル データベースは VistaDB です。私のコードは、上位 10 件の結果に関しては機能しますが、上位 10 件の結果だけでなく、「Pojam」列からすべてを収集してテキスト ボックスに表示する必要があります。

私のコードは text_changed イベント ハンドラーで実行されます

助けてください。前もって感謝します

        string pojam = UppercaseFirst(TextBoxPojam.Text.ToLower());
        AutoCompleteStringCollection namesCollection = new AutoCompleteStringCollection();
        VistaDBConnection con = new VistaDBConnection(@"data source='|DataDirectory|Recnik.vdb4';Pooling=true;Open Mode = NonexclusiveReadWrite;");
        con.Open();
        VistaDBCommand cmnd = con.CreateCommand();
        cmnd.CommandType = CommandType.Text;
        cmnd.CommandText = "SELECT top(10) Pojam FROM dbo.RecnikFinal";  
        VistaDBDataReader dReader;
        dReader = cmnd.ExecuteReader();

        if (dReader.Read())
        {
            while (dReader.Read())
                namesCollection.Add(dReader["Pojam"].ToString());
        }
        else
        {
            MessageBox.Show("Data not found");
        }
        dReader.Close();

        TextBoxPojam.AutoCompleteMode = AutoCompleteMode.Suggest;
        TextBoxPojam.AutoCompleteSource = AutoCompleteSource.CustomSource;
        TextBoxPojam.AutoCompleteCustomSource = namesCollection;
4

1 に答える 1

3

次の行を置き換えます。

    cmnd.CommandText = "SELECT top(10) Pojam FROM dbo.RecnikFinal";  

    cmnd.CommandText = "SELECT Pojam FROM dbo.RecnikFinal";  
于 2013-11-05T11:16:50.290 に答える