私は私の医者表では3台、PatientDoctor(リンク患者テーブルの主キーとドクター表主キー)、患者と医師SQL - 別のテーブルにリンクマスタテーブルからデータ
を持って、
を見つけます----------------------------------
|ID|Doctor Name|Specialty|Year Ex|
----------------------------------
|1 |Alex |Transplt | 3 |
----------------------------------
私の患者診察で
、
私PatientDoctorで------------------------------- |ID|Patient Name|Ward|Diseases| ------------------------------- |5 |Berns |1234| Cancer | -------------------------------
、今
------------------------
|ID|Patient ID|DoctorID|
------------------------
|6 |5 |1 |
------------------------
、私はコンボボックスから「アレックス」を検索した場合と同様に、患者に関連する医師を検索したい場合は、リストボックスが関連付けられているすべての患者が表示されます。これは私がこれまで行っているコードですが、まだエラーを返します。> if (comboBox1.SelectedIndex==-1) > MessageBox.Show("Nothing to search!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); > else > { > using (SqlConnection connection = new SqlConnection(connectionString)) > { > //string sql = "SELECT * FROM Patient " + "WHERE [Patient Name] = @name"; > string sql = "SELECT a.[Patient Name] FROM Patient a " + "INNER JOIN PatientDoctor b ON a.ID = b.[DoctorID] " + "INNER > JOIN Doctor c ON b.ID = c.[Doctor Name]" + "WHERE c.[Doctor Name] = > @DID"; > using (SqlCommand cmd = new SqlCommand(sql, connection)) > { > cmd.Parameters.AddWithValue("@DID", comboBox1.SelectedValue.ToString()); > > DataTable dt = new DataTable(); > SqlDataAdapter ad = new SqlDataAdapter(cmd); > ad.Fill(dt); > > if (dt.Rows.Count > 0) > { //check if the query returns any data > listBox1.DataSource = dt; > //dg1.DataBind(); > } > else > { > MessageBox.Show("Record not found!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); > } > textBox1.Text = ""; > } > } > }
あなたは、私たちは正しいお使いのコンピュータの前に座っていないことを認識しない「それはまだエラーを返しますか」?あなたは何のエラーがあるのかわかりません。あなたは明示的にあなたの問題を述べる必要があります。 – mason
これはあなたのエラーではありませんが、言及する必要があります:アプリケーションの他のレイヤにbussinessコードとデータアクセスコードを入れてみてください。つまり、メソッドを公開し、SOLID https://en.wikipedia.org/wiki/Solidに従うクラス(サービス、リポジトリ)を作成します。フォームコードにsqlコードを入れないでください。 –