Click here to Skip to main content
15,899,126 members
Please Sign up or sign in to vote.
1.00/5 (2 votes)
See more:
Index 0 is either negative or above rows count. Not able to understand how to resolve this problem:

C#
protected void loadData()
        {
            GlobalClass GC = new GlobalClass();

            PatientID = GC.getPatientID();
            string gQuery1 = "Select Treat_ID,Treat_Med_No,Treat_Due_Date,Treat_Issue_Date from Treatment_Details where Treat_P_ID = " + PatientID;
            Gbind1(gQuery1);


            string GetData = "Select P_Id,P_Name,P_Password,P_City,MedicineTaker, Treat_ID, Treat_Med_No,Format(Treat_Issue_Date, \"dd/mm/yyyy\") AS Treat_Issue_Date,Treat_Qty,Format(Treat_Due_Date, \"dd/mm/yyyy\") AS Treat_Due_Date,Treat_P_ID From patient_Details,Treatment_Details Where patient_Details.P_Id = Treatment_Details.Treat_P_ID AND patient_Details.P_Id = " + PatientID;

            DBTrac DBT = new DBTrac();

            DataSet dsData = DBT.returnDataset(GetData);

            DataView dv = dsData.Tables[0].DefaultView;
            dv.RowFilter = "Treat_ID >= MAX(Treat_ID)";

            label1.Text = dv[0]["P_Name"].ToString();
            label2.Text = dv[0]["MedicineTaker"].ToString();
            label4.Text = dv[0]["P_City"].ToString();
          
            label8.Text = dv[0]["Treat_Issue_Date"].ToString();
           label11.Text = dv[0]["Treat_Due_Date"].ToString();
           label14.Text = dv[0]["Treat_Qty"].ToString();
         

            
        }
Posted
Updated 9-Mar-15 23:22pm
v3
Comments
Subramanyam Shankar 10-Mar-15 5:07am    
Put a check for null and the number of rows you are getting if it is not null and the rows count is > 0 then try to get data by indexing.
MayankSemwal 10-Mar-15 5:28am    
it also throwing nullreferenceexception.object reference no set

Put the following checks
C#
DataSet dsData = DBT.returnDataset(GetData);
if(dsdata!=null && dsdata.Tables.Count>0)
{
            DataView dv = dsData.Tables[0].DefaultView;
           
            dv.RowFilter = "Treat_ID >= MAX(Treat_ID)";
            
            if(dv!=null && dv.Table.Rows.Count>0)
           {
            label1.Text = dv[0]["P_Name"].ToString();
            label2.Text = dv[0]["MedicineTaker"].ToString();
            label4.Text = dv[0]["P_City"].ToString();
          
            label8.Text = dv[0]["Treat_Issue_Date"].ToString();
           label11.Text = dv[0]["Treat_Due_Date"].ToString();
           label14.Text = dv[0]["Treat_Qty"].ToString();
          }
}
 
Share this answer
 
Comments
MayankSemwal 10-Mar-15 5:53am    
Subramanayam@ Sir, did that it showing object does not contain a definition for tables
MayankSemwal 10-Mar-15 5:58am    
worked.But not getting user details from database
Subramanyam Shankar 10-Mar-15 6:04am    
obvious your data set is null right. check why you are not getting the data from the database.
MayankSemwal 10-Mar-15 6:09am    
can you tell me how to resolve that because i am newbee in software develoment.
MayankSemwal 10-Mar-15 6:12am    
GlobalClass GC = new GlobalClass();

PatientID = GC.getPatientID();
string gQuery1 = "Select Treat_ID,Treat_Med_No,Treat_Due_Date,Treat_Issue_Date from Treatment_Details where Treat_P_ID = " + PatientID;
Gbind1(gQuery1);


string GetData = "Select P_Id,P_Name,P_Password,P_City,MedicineTaker, Treat_ID, Treat_Med_No,Format(Treat_Issue_Date, \"dd/mm/yyyy\") AS Treat_Issue_Date,Treat_Qty,Format(Treat_Due_Date, \"dd/mm/yyyy\") AS Treat_Due_Date,Treat_P_ID From patient_Details,Treatment_Details Where patient_Details.P_Id = Treatment_Details.Treat_P_ID AND patient_Details.P_Id = " + PatientID;

DBTrac DBT = new DBTrac();

and code in dbtrac() :::--



public DataSet returnDataset(string Qry)
{
OleDbConnection Conn = new OleDbConnection(ConnStr);

OleDbDataAdapter daExeQry = new OleDbDataAdapter(Qry, Conn);

DataSet dsExeQry = new DataSet();

daExeQry.Fill(dsExeQry);

return dsExeQry;
}
Are you sure that the following code actually returns a value?
C#
PatientID = GC.getPatientID();

Where does PatientID get set when constructing this object?
 
Share this answer
 
Comments
MayankSemwal 10-Mar-15 5:47am    
Here the page which is requesing the above problem having code


private void button4_Click(object sender, EventArgs e)
{
string pID = "";
string PWD = "";

if (checkGrid.CompareTo("Name") == 0)
{
pID = gvPatientName.SelectedRows[0].Cells[0].Value.ToString();
PWD = gvPatientName.SelectedRows[0].Cells[1].Value.ToString();
}

if (checkGrid.CompareTo("City") == 0)
{
pID = gvPatientCity.SelectedRows[0].Cells[0].Value.ToString();
PWD = gvPatientCity.SelectedRows[0].Cells[1].Value.ToString();
}

if (checkGrid.CompareTo("Password") == 0)
{
pID = gvPatientPassword.SelectedRows[0].Cells[0].Value.ToString();
PWD = gvPatientPassword.SelectedRows[0].Cells[1].Value.ToString();
}

if (checkGrid.CompareTo("Due") == 0)
{
pID = gvPatientsDueDate.SelectedRows[0].Cells[0].Value.ToString();
PWD = gvPatientsDueDate.SelectedRows[0].Cells[1].Value.ToString();
}
GlobalClass GC = new GlobalClass();

GC.setPatientID(pID);

patientDetails PD = new patientDetails();
PD.Show();

}
Richard MacCutchan 10-Mar-15 5:52am    
Well some part is not working. you need to go through it with your debugger to find out why. in the code:

patientDetails PD = new patientDetails();
PD.Show();

Where are the new patient details set?
MayankSemwal 10-Mar-15 6:01am    
I have this code for it a part of that code

string PatientID = "";
string name = pnametxt.Text;


string city = ddlCities.Text;
string MedicineTaker = textBox1.Text;

string pwd = retypetxt.Text;


DateTime IssueDateMed = Convert.ToDateTime(comboImonth.SelectedItem + "/" + comboIday.SelectedItem + "/" + comboIYear.SelectedItem);
string TreatID="";
string MedNo = "";
string MedQty = comboqty.SelectedItem.ToString();
string MedPacket = "";
string dueDate = Convert.ToDateTime(Idate).ToString();

string getID = "Select MAX(P_Id) From patient_Details";

DBTrac DBT = new DBTrac();



if (DBT.returnOneValue(getID).ToString().CompareTo("") != 0)
{

PatientID = (Convert.ToInt32(DBT.returnOneValue(getID)) + 1).ToString();
}
else
{
PatientID = "1";
}

if (DBT.returnOneValue(getID).ToString().CompareTo("") != 0)
{

TreatID = (Convert.ToInt32(DBT.returnOneValue(getID)) + 1).ToString();
}
else
{
TreatID = "1";
}
string insertQryPatient = "Insert into patient_Details(P_name,P_Password,P_City,MedicineTaker) values ('" + name + "','" + pwd + "','" + city + "','" + MedicineTaker + "')";


DBT.exeQuery(insertQryPatient);

foreach (DataGridViewRow drvMedicine in gvMedicineParticulars.Rows)
{
MedNo = drvMedicine.Cells[0].Value.ToString();
MedPacket = drvMedicine.Cells[1].Value.ToString();

string insertQriTreat = "Insert into Treatment_Details(Treat_Med_No,Treat_Issue_Date,Treat_Qty,Treat_Due_Date,Treat_P_ID,Treat_P_Pkg) values ('" + MedNo + "',#" + IssueDateMed + "#," + MedQty + ",#" + dueDate + "#," + PatientID + "," + MedPacket + ")";

DBT.exeQuery(insertQriTreat);
}
Richard MacCutchan 10-Mar-15 6:14am    
As I said before, you need to use your debugger to find out which values/objects are incorrect. It is not possible for anyone to guess.
MayankSemwal 10-Mar-15 7:45am    
ok..

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900