0

次のコードを使用して、MySQL テーブルからデータを表示できました: datardr = cmd.ExecuteReader

    If datardr.HasRows Then
        datardr.Read()
        tb_lname.Text = datardr("SURNAME")
        tb_fname.Text = datardr("GIVEN")
        tb_mname.Text = datardr("MID")
        tb_mi.Text = datardr("MIDDLE")
        tb_app.Text = datardr("APPELLATION")
        tb_prefix.Text = datardr("PREFIX")
        tb_sex.Text = datardr("SEX")
        tb_status.Text = datardr("STATUS")
    End If

ただし、これらのフィールドからのすべてのデータが表示されていないことに気付きました。SURNAME、GIVEN、MID、および MIDDLE しか表示できませんが、他のフィールドは表示されません。データベース フィールドを再確認しましたが、それらが同じで、特殊文字や空白がないことを確認しました。

助けてください。ありがとう!

これが私が持っている正確なコードです=> VB2010とMySQLコード

4

2 に答える 2

0

了解しました。別の回答があります。

21行目のSQLステートメントが原因だと思います。結果のフィールドをテキストボックスに挿入できるように、1つのレコードを選択していると仮定します(私は正しいですか?
。そして、結果をSURNAMEで注文します。テーブル 内にすでにデータがあるかどうかを再確認しましたか?特に、すべての行のすべてのフィールドにデータを入力済みかどうかを確認してください。
masterlist

30行目でメソッドを呼び出しdatardr.Read()たので、DataReaderオブジェクトdatardrはsqlステートメントの結果で検出した最初のレコード行を読み取ります。最初のレコードの4つのフィールド、、、、およびデータ値とその他のフィールドのみがあるSURNAME思います。 null値が含まれています。したがって、これらの4つの値のみがテキストボックス内に表示され、他のフィールドは空白のように見えます。GIVENMIDMIDDLE

私はそれが主な問題かもしれないと思います。表示したいデータがデータベーステーブルにすでに存在するかどうかを確認するだけです。わかった!

そして別の提案。SQLステートメントにWHERE句が必要になると思いませんか?さて、あなたは1つのレコードだけを表示したいですよね?

幸運を祈ります!!! :-)

于 2012-07-01T17:14:33.713 に答える
0

コマンド オブジェクトに渡された sql ステートメントを確認したほうがよいと思いますcmd
でレコード全体を選択しなかった可能性がありますselect *

そして、もう1つのお勧め。
の場合datardrは、使用しないDataReaderことを強くお勧めします。それは役立つよりも多くの問題を引き起こします。 より柔軟なアプローチは、. コマンド オブジェクトには、オブジェクトを返すメソッドがあります。 DataReader よりも柔軟で使いやすいです。私を信じて...!;-)
DataTable
ExecuteNonQueryDataTable

于 2012-06-30T06:07:12.657 に答える