PDA

View Full Version : سوال: خطا در هنگام ریختن فیلدهای جدول درون تکست باکس



firoozi90
جمعه 10 شهریور 1391, 15:28 عصر
سلام دوستان
من از کد زیر برای ریختن فیلدهای جدول درون تکست باکس استفاده می کنم.اما هنگام اجرا خطای زرد رنگ میده که فقط نوشته
there is no row at positon 0

string cnString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\SELLPC.mdf;Integrated Security=True;User Instance=True";
SqlConnection cn = new SqlConnection(cnString);
cn.Open();
SqlCommand com = new SqlCommand("SELECT * FROM TBLCPU WHERE MDLCPU LIKE '" +cmbmdlcpu. Text + "%'", cn);
SqlDataAdapter da = new SqlDataAdapter(com);
DataTable otabale = new DataTable();
da.Fill(otabale);
cn.Close();

txtprccpu.Text = otabale.Rows[0]["PRCCPU"].ToString();
txtvarrcpu.Text = otabale.Rows[0]["VARRCPU"].ToString();




و اون خطا هم مربوط به این خط کد هستش

txtprccpu.Text = otabale.Rows[0]["PRCCPU"].ToString();


لطفا اشکال کارم رو بگید کجاست

nima.sh
جمعه 10 شهریور 1391, 15:50 عصر
میتونی با datareader این کار رو انجام بدی...

sqldatareader reader=cmd.executereader();
while(reader.read()){
txtprccpu.Text=reader[0];

}

موفق باشی...

firoozi90
جمعه 10 شهریور 1391, 16:26 عصر
میتونی با datareader این کار رو انجام بدی...

sqldatareader reader=cmd.executereader();
while(reader.read()){
txtprccpu.Text=reader[0];



}

موفق باشی...
کدیو که مگه من نوشتم مگه اشکال داره؟
کد من وقتی توی شرط تکست باکس میزارم کار میکنه اما وقتی که کمبو باکس باشه این خایی رو که گفتم میده
میخوام بدونم مشکل کارم از کجاست؟

nima.sh
جمعه 10 شهریور 1391, 16:35 عصر
دستور شما درسته...
دستوری رو که میخوای تو کامبو باکس بذاری:
comboBox1.Items.Add(reader[0].tostring())

firoozi90
جمعه 10 شهریور 1391, 17:10 عصر
دستور شما درسته...
دستوری رو که میخوای تو کامبو باکس بذاری:
comboBox1.Items.Add(reader[0].tostring())

این کارو نمی خوام بکنم

من توی دستور اس کیو ال یه شز گذاشتم که اگر فلان فیلد با تکست کمبوباکسم برابر بود
در اینصورت بیاد دوتا فیلد جدولم توی تکست باکس نشون داده بشه
کدمو یک بار بخونی متوجه میشی

ولی موقع اجرا این خطا رو میده

nima.sh
جمعه 10 شهریور 1391, 17:34 عصر
ببخشید دوست عزیز کاملا متوجه نشدم...
خب،اول باید گرید ویو رو یه بار پیمایش کنی تا به اون فیلد مورد نظر برسی:

for(int i=0;i<=gridview.rowcount;i++){
string x = Convert.ToInt32(GridView.Rows[i].Cells["fieald name"].Value.tostring()) ;
}if(x==combobox.selectedItem)
txtprccpu.Text = otabale.Rows[0]["PRCCPU"].ToString();
txtvarrcpu.Text = otabale.Rows[0]["VARRCPU"].ToString();

}


}

firoozi90
جمعه 10 شهریور 1391, 18:38 عصر
ببخشید دوست عزیز کاملا متوجه نشدم...
خب،اول باید گرید ویو رو یه بار پیمایش کنی تا به اون فیلد مورد نظر برسی:

for(int i=0;i<=gridview.rowcount;i++){
string x = Convert.ToInt32(GridView.Rows[i].Cells["fieald name"].Value.tostring()) ;
}if(x==combobox.selectedItem)
txtprccpu.Text = otabale.Rows[0]["PRCCPU"].ToString();
txtvarrcpu.Text = otabale.Rows[0]["VARRCPU"].ToString();

}


}


ممنون از توجهت
اما این کد همون کاری می کنه که کد من انجام میده و کاملا درسته اما مشکل اینجاست که از Row[0] ایراد می گیره و می گه در position صفر ردیفی وجود نداره.
یه اینجور چیزی
این کدی که نوشتم توی یه قسمت دیگه درست جواب داده منتها توی شرط بجای کمبوباکس (cmbmdlcpu) از تکست باکس استفاده کرده بودم.

abdullah20
جمعه 10 شهریور 1391, 18:56 عصر
string cnString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\SELLPC.mdf;Integrated Security=True;User Instance=True";
SqlConnection cn = new SqlConnection(cnString);
DataSet dataset = new DataSet();
string query = "SELECT * FROM TBLCPU ";
SqlDataAdapter datada = new SqlDataAdapter(query, cn);
datada.Fill(dataset, "TBLCPU");
for (int i = 1; i <= dataset.Tables["TBLCPU"].Rows.Count; i++)
{
string str=(string)(dataset.Tables["TBLCPU"].Rows[i - 1]["MDLCPU "]);
if (str.Contains(cmbmdlcpu.Text))
txtprccpu.Text = (string)(dataset.Tables["TBLCPU"].Rows[i - 1]["heads"]);
}

firoozi90
جمعه 10 شهریور 1391, 20:25 عصر
دست همه ی دوستان درد نکنه و لطف داشتن به من جواب دادن
اما من میخوام کد خودم رو مشکلش حل کنم.نمی دونم بخ جای 0 چی بزارم که بهم خطا نده.

firoozi90
جمعه 10 شهریور 1391, 21:07 عصر
string cnString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\SELLPC.mdf;Integrated Security=True;User Instance=True";
SqlConnection cn = new SqlConnection(cnString);
DataSet dataset = new DataSet();
string query = "SELECT * FROM TBLCPU ";
SqlDataAdapter datada = new SqlDataAdapter(query, cn);
datada.Fill(dataset, "TBLCPU");
for (int i = 1; i <= dataset.Tables["TBLCPU"].Rows.Count; i++)
{
string str=(string)(dataset.Tables["TBLCPU"].Rows[i - 1]["MDLCPU "]);
if (str.Contains(cmbmdlcpu.Text))
txtprccpu.Text = (string)(dataset.Tables["TBLCPU"].Rows[i - 1]["heads"]);
}

بسیار ممنونم دوست عزیز
کدم رو تغییر دادم و از کد شما استفاده کردم.
میشه یه لطف کنی بگی بصورت متد بخوام بنویسم چه جور میشه؟متدش رو برام میزاری؟