hi my name is vishal for past 10 days i have been breaking my head on how to pass id value to one table to another table in a form and once passed or created in another table should not appear in combobox values in c# windows forms with sql server2008?
given below is structure of tables in sql server2008
table1:name:dialyser
ColumnName DataType AllowNulls
mfr_ref_number nvarchar(20) Yes
mfr_lot_number nvarchar(20) Yes
mfr_date date Yes
exp_date date Yes
packed_volume Int Yes
patient_id Int Yes
start_date datetime Yes
end_date datetime Yes
row_upd_date datetime Yes
manufacturer nvarchar(50) Yes
dialyzer_size nvarchar(20) Yes
user_id Int Yes
deleted_status bit Yes
deleted_date datetime Yes
dialyserID nvarchar(20) Yes
closed_status bit Yes
closed_date datetime Yes
agn Int No(since auto-increment primary key)
table2 name:patient_id
ColumnName DataType AllowNulls
patient_id Int No(since auto-increment primary key)
patient_sex nvarchar(10) Yes
patient_dob date Yes
row_upd_date datetime Yes
user_id Int Yes
table3 name:patient_name
ColumnName DataType AllowNulls
patient_id Int Yes
patient_first_name nvarchar(50) Yes
patient_middle_name nvarchar(50) Yes
patient_last_name nvarchar(50) Yes
virology Int Yes
row_upd_date datetime Yes
status bit Yes
agn Int No(since auto-increment primary key)
user_id Int Yes
Given below is code of my form:frmPatient in C# which i insert values into tables:patient_id,patient_name and so on:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace DRRS_CSharp
{
public partial class frmPatient : Form
{
int patientID;
int pUserID;
private string conString = "Data Source=NPD-4\\SQLEXPRESS;Initial Catalog=DRRS;Integrated Security=true";
private DataSet dataset;
public frmPatient()
{
InitializeComponent();
SqlConnection conn = new SqlConnection("Data Source=NPD-4\\SQLEXPRESS;Initial Catalog=DRRS;Integrated Security=true");
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
string SqlDataPull = ("Select p.doctor_id as doctor_id,n.doctor_first_name as doctor_fname,n.doctor_last_name as doctor_lname,n.doctor_middle_name as doctor_mname from doctordetail n,doctor p where n.doctor_id=p.doctor_id and n.status=1");
SqlCommand cmd = new SqlCommand(SqlDataPull);
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
SqlDataPull = dr[0].ToString() + dr[1].ToString() + dr[2].ToString() + dr[3].ToString();
cboDoctor.Items.Add(SqlDataPull);
}
dr.Close();
}
private void btnCreate_Click(object sender, EventArgs e)
{
string dFieldName = "";
Boolean vEmptyB = false;
if (txtFName.Text.ToString().Trim() == "")
{
vEmptyB = true;
dFieldName = "Please enter patient first name";
}
else if (cboSex.SelectedIndex == -1)
{
vEmptyB = true;
dFieldName = "Please select gender for patient";
}
else if (txtCity.Text.ToString().Trim() == "")
{
vEmptyB = true;
dFieldName = "Please enter city of patient";
}
else if (txtCountry.Text.ToString().Trim() == "")
{
vEmptyB = true;
dFieldName = "Please enter country of patient";
}
else if (cboVirology.SelectedIndex == -1)
{
vEmptyB = true;
dFieldName = "Please select virology state of patient";
}
else if (cboDoctor.SelectedIndex == -1)
{
vEmptyB = true;
dFieldName = "Please select doctor for patient";
}
if (vEmptyB == true)
{
MessageBox.Show(dFieldName + "should not be empty");
return;
}
SqlConnection conn = new SqlConnection("Data Source=NPD-4\\SQLEXPRESS;Initial Catalog=DRRS;Integrated Security=true");
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
int autoGenId = -1;
cmd = new SqlCommand("Insert into patient_id(patient_sex,patient_dob,row_upd_date,user_id)" + "Values(@patient_sex,@patient_dob,GetDate(),@user_id);Select @autoGenId = SCOPE_IDENTITY();",conn);
if (cboSex.SelectedIndex == 0)
{
cmd.Parameters.AddWithValue("@patient_sex", "M");
}
else
{
cmd.Parameters.AddWithValue("@patient_sex", "F");
}
cmd.Parameters.AddWithValue("@patient_dob", dtDOB.Value);
cmd.Parameters.AddWithValue("@user_id", pUserID);
cmd.Parameters.Add("@autoGenId", SqlDbType.Int).Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
autoGenId = Convert.ToInt32(cmd.Parameters["@autoGenId"].Value);
cmd = new SqlCommand("Insert into patient_name(patient_id,patient_first_name,patient_middle_name,patient_last_name,virology,status,row_upd_date,user_id)" + "Values(@patient_id,@patient_first_name,@patient_middle_name,@patient_last_name,@virology,@status,GetDate(),@user_id)", conn);
cmd.Parameters.AddWithValue("@patient_id",autoGenId);
cmd.Parameters.AddWithValue("@patient_first_name", txtFName.Text.ToString());
cmd.Parameters.AddWithValue("@patient_middle_name", txtMName.Text.ToString());
cmd.Parameters.AddWithValue("@patient_last_name", txtLName.Text.ToString());
cmd.Parameters.AddWithValue("@virology", cboVirology.SelectedIndex);
cmd.Parameters.AddWithValue("@status", 1);
cmd.Parameters.AddWithValue("@user_id", pUserID);
cmd.ExecuteNonQuery();
if ((txtHNumber.Text != "") || (txtMNumber.Text != ""))
{cmd = new SqlCommand("Insert into address(apartment_name,door_number,street_name_1,Street_name_2,Street_name_3,village,city,state,country,apartment_number,row_upd_date,patient_id,status,pincode,user_id)" + "Values(@apartment_name,@door_number,@street_name_1,@Street_name_2,@Street_name_3,@village,@city,@state,@country,@apartment_number,GetDate(),@patient_id,@status,@pincode,@user_id)", conn);
cmd.Parameters.AddWithValue("@apartment_name", txtApartmentName.Text.ToString());
cmd.Parameters.AddWithValue("@door_number", txtDoorNo.Text);
cmd.Parameters.AddWithValue("@street_name_1", txtStreet1.Text.ToString());
cmd.Parameters.AddWithValue("@Street_name_2", txtStreet2.Text.ToString());
cmd.Parameters.AddWithValue("@Street_name_3", txtStreet3.Text.ToString());
cmd.Parameters.AddWithValue("@village", txtVillageArea.Text.ToString());
cmd.Parameters.AddWithValue("@city", txtCity.Text.ToString());
cmd.Parameters.AddWithValue("@state", txtState.Text.ToString());
cmd.Parameters.AddWithValue("@country", txtCountry.Text.ToString());
cmd.Parameters.AddWithValue("@apartment_number", txtApartmentNo.Text);
cmd.Parameters.AddWithValue("@patient_id",autoGenId);
cmd.Parameters.AddWithValue("@status", 1);
cmd.Parameters.AddWithValue("@pincode", txtPCode.Text);
cmd.Parameters.AddWithValue("@user_id", pUserID);
cmd.ExecuteNonQuery();
cmd = new SqlCommand("Insert into doctorpatient(patient_id,doctor_id,row_upd_date,status,user_id)" + "Values(@patient_id,@doctor_id,GetDate(),@status,@user_id)", conn);
cmd.Parameters.AddWithValue("@patient_id",autoGenId);
cmd.Parameters.AddWithValue("@doctor_id", cboDoctor.GetItemText(cboDoctor.SelectedIndex));
cmd.Parameters.AddWithValue("@status", 1);
cmd.Parameters.AddWithValue("@user_id", pUserID);
cmd.ExecuteNonQuery();
((MDIParent1)this.MdiParent).updateUserActivities(autoGenId, 1, txtFName.Text.ToString() + "patient detail was added successfully");
MessageBox.Show("patient Detail was added successfully", "DRRS", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.Close();
}The above code executes and works perfectly
Given below is code of form:frmDialyzer in c# in which i insert values into table:dialyser
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.IO;
namespace DRRS_CSharp
{
public partial class frmDialyzer : Form
{
int dStepIndex;
int pUserID;
public frmDialyzer()
{
InitializeComponent();
SqlConnection conn = new SqlConnection("Data Source=NPD-4\\SQLEXPRESS;Initial Catalog=DRRS;Integrated Security=true");
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
string PatientPull = ("select p.patient_id as patient_id,n.patient_first_name as patient_fname,n.patient_last_name as patient_lname from patient_name n,patient_id p where n.patient_id=p.patient_id and n.status =1 and p.patient_id Not In(Select patient_id from dialyser where deleted_status=0 and closed_status=0)");
SqlCommand cmd = new SqlCommand(PatientPull);
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
PatientPull = dr[1].ToString() + "_" + dr[2].ToString() + "(" + "0000" + dr[0].ToString() + ")";
cboPatientID.Items.Add(PatientPull);
}
dr.Close();
string ManufacturerPull = ("Select distinct(ManufacturerName) from EquipmentData");
SqlCommand mcd = new SqlCommand(ManufacturerPull);
mcd.Connection = conn;
mcd.CommandType = CommandType.Text;
SqlDataReader cdr = mcd.ExecuteReader();
while (cdr.Read())
{
ManufacturerPull = cdr[0].ToString();
cboManufacturer.Items.Add(ManufacturerPull);
}
cdr.Close();
}
private void btnNext_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("Data Source=NPD-4\\SQLEXPRESS;Initial Catalog=DRRS;Integrated Security=true");
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
string str;
string value = ("Select max(agn) from dialyser");
cmd = new SqlCommand(value, conn);
str = cmd.ExecuteScalar().ToString();
conn.Close();
if (str == DBNull.Value.ToString())
{
txtDID.Text = string.Format("0000"+"1");
}
else
{
txtDID.Text = (string.Format("0000"+(Convert.ToInt32(str) + 1).ToString()));
}
}
private void btnAssign_Click(object sender, EventArgs e)
{
string dFieldName = "";
Boolean vEmptyB = false;
if (cboManufacturer.Text.ToString().Trim() == "")
{
vEmptyB = true;
dFieldName = "Please select a Manufacturer";
}
else if (cboequipmentType.Text.ToString().Trim() == "")
{
vEmptyB = true;
dFieldName = "Please select size of dialyzer";
}
else if (txtMFRRefNo.Text.ToString().Trim() == "")
{
vEmptyB = true;
dFieldName = "Please enter reference number of the dialyzer";
}
else if (txtMFRLotNo.Text.ToString().Trim() == "")
{
vEmptyB = true;
dFieldName = "Please enter lot number of the dialyzer";
}
else if (txtPVol.Text.ToString().Trim() == "")
{
vEmptyB = true;
dFieldName = "Please enter packed volume of the dialyzer";
}
else if (cboPatientID.SelectedIndex == -1)
{
vEmptyB = true;
dFieldName = "Please select Patient ID";
}
if (vEmptyB == true)
{
MessageBox.Show(dFieldName + "should not be empty");
return;
}
SqlConnection conn = new SqlConnection("Data Source=NPD-4\\SQLEXPRESS;Initial Catalog=DRRS;Integrated Security=true");
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
int autoGenId = -1;
cmd = new SqlCommand("Insert into dialyser(dialyserID,manufacturer,mfr_ref_number,mfr_lot_number,mfr_date,exp_date,start_date,closed_status,deleted_status,packed_volume,dialyzer_size,patient_id,row_upd_date,user_id)" + "Values(@dialyserID,@manufacturer,@mfr_ref_number,@mfr_lot_number,@mfr_date,@exp_date,@start_date,@closed_status,@deleted_status,@packed_volume,@dialyzer_size,@patient_id,GetDate(),@user_id);Select @autoGenId = SCOPE_IDENTITY();", conn);
cmd.Parameters.AddWithValue("@dialyserID", txtDID.Text.ToString());
cmd.Parameters.AddWithValue("@manufacturer", cboManufacturer.Text.ToString());
cmd.Parameters.AddWithValue("@mfr_ref_number", txtMFRRefNo.Text.ToString());
cmd.Parameters.AddWithValue("@mfr_lot_number", txtMFRLotNo.Text.ToString());
cmd.Parameters.AddWithValue("@mfr_date", dtMFRDate.Value);
cmd.Parameters.AddWithValue("@exp_date", dtExpDate.Value);
cmd.Parameters.AddWithValue("@start_date", dtStartDate.Value);
cmd.Parameters.AddWithValue("@closed_status", 0);
cmd.Parameters.AddWithValue("@deleted_status", 0);
cmd.Parameters.AddWithValue("@packed_volume", txtPVol.Text.ToString());
cmd.Parameters.AddWithValue("@dialyzer_size", cboequipmentType.Text.ToString());
cmd.Parameters.AddWithValue("@patient_id", cboPatientID.SelectedIndex);
cmd.Parameters.AddWithValue("@user_id", pUserID);
cmd.Parameters.Add("@autoGenId", SqlDbType.Int).Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery();
autoGenId = Convert.ToInt32(cmd.Parameters["@autoGenId"].Value);
((MDIParent1)this.MdiParent).updateUserActivities(autoGenId, 4, cboManufacturer.Text + "Dialyzer detail was added successfully");
MessageBox.Show("Dialyzer data was successfully added", "DRRS", MessageBoxButtons.OK, MessageBoxIcon.Information);
}The above code works OK.
what i want is after inserting value of patient_id from tables:patient_id andpatient_name into table:dialyser through combobox named:cboPatientID i dont want the same value to appear in my combobox named:cboPatientID each time when the form:frmDialyzer loads.
As you can see in below code is how i am trying to solve the problem through following query in c# in public frmDialyzer()
{
InitializeComponent();:
SqlConnection conn = new SqlConnection("Data Source=NPD-4\\SQLEXPRESS;Initial Catalog=DRRS;Integrated Security=true");
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
string PatientPull = ("select p.patient_id as patient_id,n.patient_first_name as patient_fname,n.patient_last_name as patient_lname from patient_name n,patient_id p where n.patient_id=p.patient_id and n.status =1 and p.patient_id Not In(Select patient_id from dialyser where deleted_status=0 and closed_status=0)");
SqlCommand cmd = new SqlCommand(PatientPull);
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
SqlDataReader dr = cmd.ExecuteReader();
The above approach does not work as i get the same value of patient_id in my combobox:cboPatientID in form:frmDialyzer to which i have already assigned a dialyzer.Tell me how to solve my problem?
Can anyone help me please! Any help or guidance in solving this problem would be greatly appreciated.
vishal