PDA

View Full Version : چطوری مطمئن شم از اینکه اطلاعات درون دیتابیسم ذخیره شد؟



f.beigirad
پنج شنبه 05 بهمن 1391, 16:38 عصر
با سلام.


چطوری از کپی شدن اطلاعات تو دیتابیس مطمئن شم.

کاربر اطلاعات رو وارد میکنه.میخوام اصلاعات که ذخیره شد برای مثال پیام بده : اطلاعات با موفقیت ذخیره شد.


string cmdstr = "INSERT INTO Address (Title,URL) VALUES (@t,@u)";
SQLiteCommand cmd = new SQLiteCommand(cmdstr, cnn);
cmd.Parameters.AddWithValue("@t", title);
cmd.Parameters.AddWithValue("@u", url);

cnn.Open();
cmd.ExecuteNonQuery();
cnn.Close();

plus
پنج شنبه 05 بهمن 1391, 16:54 عصر
اگه ExecuteNonQuery که اجرا میشه Exception نده، یعنی اینکه دستور INSERT شما با موفقیت اجرا شده...علاوه بر اون، این متد تعداد سطرهای تاثیر گرفته (Affected) رو برمیگردونه که اینجا باید 1 باشه ...

f.beigirad
پنج شنبه 05 بهمن 1391, 17:14 عصر
با سلام.ممنون از پاسختون.

قبلا شنیده بودم ExecuteNonQuery تعداد رکورد هایی که روشون تاثیر میذاره رو برمیگردونه.

اما نمیدونم چطوری این مقدارو دریافت کنم.


و از این به عنوان پیغام موفقیت در ذخیره شدن اطلاعات تو دیتابیسم استفاده کنم.

میشه یکم بیشتر توضیح بدین

sirvan-me
پنج شنبه 05 بهمن 1391, 17:17 عصر
سلام دوست من .. می تونی به این صورت عمل کنی :


if (Command.ExecuteNonQuery > 0)
{
//با موفقیت
}

else
//عدم موفقیت

sirvan-me
پنج شنبه 05 بهمن 1391, 17:22 عصر
البته میتونی یه SQLTransaction تعریف کنی به این صورت :


SQLTransaction Transaction = Connectio.BeginTransaction();
Command.Transaction = Trans;
//...
if(Command.ExecuteNonquery > 0)
{
Trans.Commit();
}
else
Trans.RollBack();


اینطوری اگه دستور Insert شما به درستی انجام بشه ( یعنی همه ی فیلد ها درستسرجاشون بشینن عمل Insert انجام میشه ) رکوردتون ثبت میشه . در غیر اینصورت عملیات RollBackمیشه. این روش از روشی که گفته شد خیلی بهتره .