امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
ارسال لیستی از اطلاعات به sql
نویسنده پیام
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #1
ارسال لیستی از اطلاعات به sql
سلام.
من یه لیستی از اطلاعات دارم که میخوام در دیتابیس ذخیره کنم. در واقع یه جورایی اینا یه لیستی از رکوردها میشن.

این رکوردها یا باید همه با هم ثبت شن یا هیچ کدوم ثبت نشن.
میخوام بفرستمشون به sql تا در storeprocedure اجرا بشه و در صورت بروز مشکل در وسط کار rollback کنم. اما روش ارسال لیستی از اطلاعات رو نمیدونم.

ممنون میشم راهنمایی کنید.
۲۶-مرداد-۱۳۹۰, ۰۲:۲۸:۱۳
ارسال‌ها
پاسخ
lord_viper غایب
مدیر کل انجمن
*****

ارسال‌ها: 3,949
موضوع‌ها: 352
تاریخ عضویت: بهمن ۱۳۸۴

تشکرها : 5193
( 9875 تشکر در 2650 ارسال )
ارسال: #2
RE: ارسال لیستی از اطلاعات به sql
چه جور لیستیه؟
معمولا trancsation استفاده میشه
اگه لیست خاصی هست که باید پیمایش بشه میتونی از حلقه و رکوردست استفاده کنی

[تصویر:  xshon.png]
از آن نماز که خود هیچ از آن نمی فهمی خدا چه فایده و بهره اکتساب کند
تفاخری نبود مر خدای عالم را که چون تو ابلهی او را خدا حساب کند
۲۶-مرداد-۱۳۹۰, ۱۴:۱۰:۲۹
وب سایت ارسال‌ها
پاسخ
far_222000 آفلاین
مدير بخش ديتابيس
*****

ارسال‌ها: 955
موضوع‌ها: 68
تاریخ عضویت: شهریور ۱۳۸۴

تشکرها : 468
( 1249 تشکر در 422 ارسال )
ارسال: #3
RE: ارسال لیستی از اطلاعات به sql
سلام
همون طور که Lord_Viper عزیز گفت:

باید وقتی کانکشن رو باز می کنی یه Transaction رو بهش وصل کنی
کد های INSERT رو بنویسی(مثلا 5 تا Insert داری)
در نهایت Commit می کنی

حالا این اطلاعات یا همشون با هم تو دیتابیس ذخیره می شن یا هیچکدوم ذخیره نمیشن و شما یه ارور دریافت می کنی!

پارک24
مرجع خرید و فروش خودرو
۱۳-شهریور-۱۳۹۰, ۱۲:۵۵:۳۸
وب سایت ارسال‌ها
پاسخ
Di Di آفلاین
مدير بخش هك و كرك
*****

ارسال‌ها: 2,358
موضوع‌ها: 116
تاریخ عضویت: اسفند ۱۳۸۵

تشکرها : 1816
( 4046 تشکر در 1321 ارسال )
ارسال: #4
RE: ارسال لیستی از اطلاعات به sql
ممکنه یکم بیشتر توضیح بدید!

مخصوصا رولبک رو خیلی علاقمند شدم

۱۳-شهریور-۱۳۹۰, ۱۳:۰۷:۳۱
وب سایت ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #5
RE: ارسال لیستی از اطلاعات به sql
سلام.
دوستان عزیز من روش کار ترنزکشن رو بلدم. سوال من در مورد روش ارسال لیستی از اطلاعات به sql بود. یه لیستی که مقادیرش متغیره.
فرض کنید مشتری از فروشگاه خرید کرده و میخواهیم خریدهای اون مشتری رو به نامش ثبت کنیم. 1 بار ممکنه فقط 1 جنس خریده شده باشه. 1 بار ممکنه n جنس خریده شده باشه. منطقی هم نیست در صورت بروز مشکل نصف اجناس ثبت بشن.

کاری که من کردم این بود که اومدم لیست اطلاعات رو که همه عدد و کد بودن رو تو یه رشته قرار دادم. بینشون هم یه کاراکتر برای جداسازی در sql قرار دادم. بعد تو sql اطلاعات و کدها رو از رشته کشیدم بیرون و تو یه حلقه تو دیتابیس ثبتشون کردم.
اما فکر میکنم روش حرفه ای تری برای این کار وجود داشته باشه و دلم میخواست حرفه ای تر عمل کنم. فکر میکنم با XML میشد حرفه ای تر کار رو انجام داد.
(آخرین ویرایش در این ارسال: ۱۶-شهریور-۱۳۹۰, ۱۳:۱۶:۲۳، توسط Payman62.)
۱۶-شهریور-۱۳۹۰, ۰۲:۴۰:۳۹
ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #6
RE: ارسال لیستی از اطلاعات به sql
(۱۳-شهریور-۱۳۹۰, ۱۳:۰۷:۳۱)Di Di نوشته است: ممکنه یکم بیشتر توضیح بدید!

مخصوصا رولبک رو خیلی علاقمند شدم

سلام.

دیدی جان برای مواقعی که میخواهیم چندین عمل ثبت و ویرایش و حذف و ... رو هم زمان در دیتابیس انجام بدیم از ترنزکشن استفاده میکنیم. موردی مثل همین سوال من.

این امکان رو sql برای برنامه نویسان قرار داده و خودش اعمال تغییرات در دیتابیس رو مدیریت میکنه تا اگه وسط کار به هر دلیلی مثل قطعی برق عملیات نیمه کاره موند همه چی به حالت اول برگرده.

روش کار به این صورته که ما دستورات sql رو داخل ترنزکشن به این صورت مینویسیم.
کد:
Begin Transaction
Insert
Update
Delete

و در صورتی که مشکلی پیش نیاد در نهایت با دستور Commit Transaction تایید نهایی رو صادر میکنیم.
اما اگه به هر دلیلی به مشکل یا اروری بر بخوریم با دستور Rollback همه تغییرات که داخل ترنزکشن اتفاق افتاده بود رو به حالت اولیه برمیگردونیم.
حتی اگه مشکل سخت افزاری مثل قطعی برق پیش بیاد sql خودش عمل Rollback رو انجام میده.

البته داخل #C هم کلاس آماده برای کار با ترنزکشن هست و عملیات Commit و Rollback رو از داخل خود #C هم میشه مدیریت کرد که راحت تره.

با این روش دیگه خیالمون از ثبت کامل اطلاعات یا عدم ثبتشون راحته. در واقع هیچ وقت اطلاعات ناقص ثبت نمیشن.
(آخرین ویرایش در این ارسال: ۱۶-شهریور-۱۳۹۰, ۱۳:۱۶:۵۳، توسط Payman62.)
۱۶-شهریور-۱۳۹۰, ۱۳:۱۶:۰۳
ارسال‌ها
پاسخ
تشکر شده توسط : Di Di, Ghoghnus
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,497
موضوع‌ها: 270
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1652
( 3938 تشکر در 1453 ارسال )
ارسال: #7
RE: ارسال لیستی از اطلاعات به sql
پیمان جان امکانش هست درمورد کلاس C# بیشتر توضیح بدی؟میدونم اینجا بخش دیتا بیس هست و نباید سوال سی را اینجا بپرسم ولی ...
اگر امکانش هست برای درک بهتر با کد توضیح بدید!

[تصویر:  a.jpg]

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي
۱۹-شهریور-۱۳۹۰, ۰۱:۳۵:۵۳
وب سایت ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #8
RE: ارسال لیستی از اطلاعات به sql
(۱۹-شهریور-۱۳۹۰, ۰۱:۳۵:۵۳)Ghoghnus نوشته است: پیمان جان امکانش هست درمورد کلاس C# بیشتر توضیح بدی؟میدونم اینجا بخش دیتا بیس هست و نباید سوال سی را اینجا بپرسم ولی ...
اگر امکانش هست برای درک بهتر با کد توضیح بدید!

سلام.
این یه کد ساده برای استفاده از ترنزکشن.

کد:
SqlConnection objConnection = new SqlConnection(ConnectionString);
objConnection.Open();
SqlTransaction MyTransaction;
MyTransaction = objConnection.BeginTransaction();

try
{
    SqlCommand objCommand = new SqlCommand();
    objCommand.Connection = objConnection;
    objCommand.Transaction = MyTransaction;
    objCommand.CommandType = CommandType.Text;
    objCommand.CommandText = "Select * from Table";

    int retVal = objCommand.ExecuteNonQuery();
    MyTransaction.Commit();
}
catch
{
    MyTransaction.Rollback();
}
finally
{
    objConnection.Close();
}
(آخرین ویرایش در این ارسال: ۱۹-شهریور-۱۳۹۰, ۰۱:۵۰:۵۳، توسط Payman62.)
۱۹-شهریور-۱۳۹۰, ۰۱:۴۹:۳۳
ارسال‌ها
پاسخ
تشکر شده توسط : Ghoghnus


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  انتقال اطلاعات از فاکس پروه به sql server Ghoghnus 1 2,673 ۱۹-اردیبهشت-۱۳۹۳, ۲۳:۳۴:۳۹
آخرین ارسال: babyy
Cool آموزش بانک اطلاعات با وی بی دا نت vbnet 0 2,589 ۲۵-تير-۱۳۹۰, ۰۰:۵۹:۱۸
آخرین ارسال: vbnet
  سوال در مورد كپي اطلاعات بين دو پايگاه داده shedayat 1 3,867 ۱۷-اردیبهشت-۱۳۸۹, ۲۲:۳۴:۴۸
آخرین ارسال: Vb_Net

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS