PDA

View Full Version : سوال: ایراد در خوندن اطلاعات از دیتابیس



Arashdn
شنبه 18 شهریور 1391, 20:45 عصر
سلام
من یه حلقه نوشتم که مجموع 27 داده رو در دیتابیس بخونه و بریزه تو متغیر
به این صورت long count;
long cnt;
OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\db\adnstore.accdb");
for (int i = 1; i < 28; i++)
{
cnt = 0;
try
{
conn.Open();
OleDbCommand cmd = conn.CreateCommand();
OleDbDataReader dbread;
cmd.CommandText = "Select sum(scount) from sellinfo " +
"WHERE ID="+i.ToString();
dbread = cmd.ExecuteReader();
while (dbread.Read())
{
cnt =long.Parse(dbread[0].ToString());
count = count + cnt;
}

}

catch (Exception ex)
{
MessageBox.Show(ex.Message);
break;
this.Close();
}
finally
{

conn.Close();

}
ولی وقتی اجراش میکنم ارور
Input string was not in a correct format
میده
به نظرتون دلیل چی میتونه باشه؟
ممنون

abcd_a
شنبه 18 شهریور 1391, 21:27 عصر
سلام
زمانی که شرط دستور select برقرار نباشه در کوری مقدار null قرار می گیره و موقعی که میاد درون حلقه while برای محاسبه خطا میده
با این تغییر کد می تونی نتجه را چک کنی
while (dbread.Read())
{
listBox1.Items.Add(dbread.GetValue(0).ToString());
// cnt =long.Parse(dbread.GetValue(0).ToString());

//count = count + cnt;

}
یه شرط قبل از while بزار تازمانی که مقدار کوری خالیه دستورات درون while اجرا نشه

درضمن به متغیر count هم مقدار اولیه بده