1

I am kinda new to C# and not sure what am I doing wrong. Tried to find a solution but failed. Thanks in advance.

When I do not use parameter "select * from Καρτέλα_Ασθενή"; the form will get populate with values from the reader. The form does not bring values in other words looks like the select command not working.

            OleDbCommand cmd = new OleDbCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = "select * from Καρτέλα_Ασθενή where Κωδ_Ασθενή = @Κωδ_Ασθενή";
            cmd.Parameters.AddWithValue("@Κωδ_Ασθενή", MyGlobals.Patient_code);
            cmd.Connection = accessdb;
            accessdb.Open();

            OleDbDataReader dr = cmd.ExecuteReader();
            if (dr.Read())
            {
                while (dr.Read())
                {
                    txt_patient_code.Text = dr["Κωδ_Ασθενή"].ToString();
                    txt_Surname.Text = dr["Επώνυμο"].ToString();
                    txt_Name.Text = dr["Όνομα"].ToString();
                    txt_date.Text = Convert.ToDateTime(dr["Ημερομηνία_Γέννησης"]).ToShortDateString();
                    txt_address.Text = dr["Διεύθυνση"].ToString();
                    txt_area.Text = dr["Περιοχή"].ToString();
                    txt_phone.Text = dr["Τηλ"].ToString();
                    txt_fax.Text = dr["Φαξ"].ToString();
                    txt_insurance.Text = dr["Ασφάλεια"].ToString();
                    txt_comments.Text = dr["Παρατηρήσεις"].ToString();
                    txt_history.Text = dr["Ιστορικό"].ToString();
                    txt_alergies.Text = dr["Αλλεργίες"].ToString();
                    txt_email.Text = dr["e-mail"].ToString();
                }
            }
            dr.Close();
            accessdb.Close();
4

2 に答える 2

0

わかりました、あなたのコードにいくつか問題がありますが、あなたの質問を完全には理解していないので、できる限りお答えします。まず第一に、私が書いたように、ループはすでにそれを行っているif (dr.Read())ので、を削除します。while現在、ループの内側に問題があります。これは、複数のアイテムがある場合、それらが前のものを上書きし、最後のアイテムの値が残ることを意味しているため、何をしたいのかを理解する必要があるためです。データ、おそらくdataGridまたは何か。

あなたの質問では、クエリについて話しているのですが、MyGlobals.Patient_codeクエリに値を入れなくても機能するということです。少なくとも、それがあなたの意図したことだと思います。最後の値またはデータベースにある可能性のあるstring.empty値が残っている可能性があります。その行に到達するたびにデータベースと値を確認し、さらにサポートが必要な場合は質問について詳しく教えてください

于 2013-07-17T08:44:35.417 に答える