PDA

View Full Version : سوال: نحوه رفرش كردن بانك اطلاعاتي



mehran788
پنج شنبه 25 خرداد 1391, 17:03 عصر
با سلام و خسته نباشيد.
من مي خوام قبل از اينكه داده اي رو تو بانك اطلاعاتي ذخيره كنم ابتدا تعداد يكي از فيلد ها رو برام برگردونه.دفعه اول كه مي زنم درست كار مي كنه ولي اگه دو تا ركورد پشت سر هم ذخيره كنم،بار دوم مقداري رو بر مي گردونه كه تو بار اول بوده.مي خواستم بدونم چطوري هر بار بانك رو رفرش كنم تا جديد ترين اطلاعات رو ببينم.
ممنون با تشكر

mehran788
جمعه 26 خرداد 1391, 19:20 عصر
كسي نمي دونه؟؟؟؟؟؟؟؟؟؟؟؟؟

iman_me
جمعه 26 خرداد 1391, 20:04 عصر
دوست عزیز با هر سلکت باید اطلاعت جدید رو برگردونه میشه کد بزاری یا بیشتر توضیج بدی

فرید نجفلو
جمعه 26 خرداد 1391, 22:02 عصر
سلام
درسته باید کدتون رو بذارید
و اگه از LINQ استفاده می کنید باید قبل از دریافت تعداد از DataContex مورد نظرتون یه نمونه جدید بسازید

ma.rad
جمعه 26 خرداد 1391, 22:34 عصر
سلام
برا رفرش بانک شما دو تا کار می تونید انجام بدید: 1-استفاده از تایمر برای رفرش اطلاعات مثلا تو هر ثانیه ، البته پیشنهاد نمی کنم
2- استفاده ازbackgrund worker نمونه هم تو قسمت نمونه برنامه ها هست جستجو کنید.

mehran788
جمعه 26 خرداد 1391, 23:48 عصر
سلام

int i=1;
while (aa=="false")
{
SqlCommand com=new SqlCommand ("select count(customercode) from tblmovakel where customercode='"+ i +"'",con);
con.Open();
int coc=(int)com.ExecuteScalar();
con.Close();
if (coc==0)
{
_code=i;
aa = "true";
}
else
{
i++;
}
}

اين قسمت بدست آورد كد موكل هست كه تو يه كلاس نوشتم.بار اول كه دكمه فشر داده مي شه و كد اجرا ميشه درست كار مي كنه ولي اگه توي ادامه ي همين كد يك ركورد به بانك اطلاعاتي اظافه بشه مقداري رو واسم مياره كه همون بار اول آورد.يعني انگار بانك رفرش نميشه و از همون داده هاي قبلي تعدادي رو كه من مي خوام رو بر ميگردونه.
ممنون از توجهي كه به سوال من كردبن

iman_me
شنبه 27 خرداد 1391, 00:57 صبح
دوست عزیز میشه بگید اون شرط ورود به حلقه کی false میشه
خوب باید قبل حلقه اونو false کنی
که دوباره کار کنه

mehran788
شنبه 27 خرداد 1391, 11:14 صبح
همونطور كه گفتم داخل كلاس نوشتم.يعني وقتي اين تابع از كلاس رو فراخواني مي كني بار اول شرط برابر false است و كد داخل حلقه اجرا مي شه و وقتي aa برابر true شد يعني كارش تموم شده و مي تونه از حلقه خارج بشه.
مشكل تو اجرا نشدن كد نيست چون وقتي ديدم كد درست كار نمي كنه خط به خط ديباگش كردم.مشكل اينجاست با اينكه كد اجرا ميشه ولي بانك رفرش نمي شه.
بازم از توجهتون ممنون

mehran788
شنبه 27 خرداد 1391, 17:37 عصر
كسي نمي دونه؟؟؟؟؟؟؟؟؟؟

iman_me
شنبه 27 خرداد 1391, 18:55 عصر
نه شما متوجه نشدید درسته بار اول false اما برای دوباره اجرا شدنش باید false باشه
شما بار دوم که روی دکمه کلیک میکنید میبینه اون true و کد رو کلا اجرا نمیکنه

tooraj_azizi_1035
شنبه 27 خرداد 1391, 19:13 عصر
من مي خوام قبل از اينكه داده اي رو تو بانك اطلاعاتي ذخيره كنم ابتدا تعداد يكي از فيلد ها رو برام برگردونه.

منظورت اینه که مقدار ذخیره شده در یک فیلد از هر رکورد را بدست بیاری؟
یعنی هر رکورد قبل از اینکه در بانک ذخیره شه تو مقدار فیلد رو داشته باشی؟

iman_me
شنبه 27 خرداد 1391, 19:21 عصر
نه عزیز میگه بعد از ذخیره موقه select برگشت داده نمیشه
میخواد که کل دیتابیس رفرش بشه

tooraj_azizi_1035
شنبه 27 خرداد 1391, 19:39 عصر
بعد از ذخیره در بانک دوباره متد Fill کامپوننت TableAdapter جدول رو صدا بزن.

mehran788
یک شنبه 28 خرداد 1391, 11:45 صبح
نه شما متوجه نشدید درسته بار اول false اما برای دوباره اجرا شدنش باید false باشه
شما بار دوم که روی دکمه کلیک میکنید میبینه اون true و کد رو کلا اجرا نمیکنه

سلام
شرمنده ام كه وقت شما رو اين همه گرفتم
من كاري رو كه شما گفتين رو هم انجام دادم يعني قبل از حلقه مقدار رو false كردم ولي فرقي نكرد.

int i=1;
string aa = "false";
while (aa=="false")
{
SqlCommand com=new SqlCommand ("select count(customercode) from tblmovakel where customercode='"+ i +"'",con);
con.Open();
com.ExecuteNonQuery();
int coc=(int)com.ExecuteScalar();
con.Close();
if (coc==0)
{
_code=i;
aa = "true";
}
else
{
i++;
}
}

mehran788
یک شنبه 28 خرداد 1391, 11:48 صبح
منظورت اینه که مقدار ذخیره شده در یک فیلد از هر رکورد را بدست بیاری؟
یعنی هر رکورد قبل از اینکه در بانک ذخیره شه تو مقدار فیلد رو داشته باشی؟

سلام
نه دوست عزيز.
من منظورم اينه كه قبل از اينكه ذخيره كنه تعداد يك فيلد رو بياره.مثلا چه تعداد ركورد هست كه فيلد code اون برابر 1 است.
و متد fill رو چطور بنويسم
با تشكر