PDA

View Full Version : وارد کردن داده در جدول دیتابیس با SqlBulkCopy



arash69
پنج شنبه 19 تیر 1393, 19:40 عصر
سلام به دوستان برنامه نویس؛
در رابطه با SqlBulkCopy سوالی داشتم؛
اگر که در دیتابیس جدولی داشته باشیم و برای مثال تنها یک ستون از ستون های این جدول قبلا مقدار گرفته باشه و بقیه ستون ها دارای مقدار NULL باشند؛
آیا می شود یک جدول تک ستونی را با استفاده از SqlBulkCopy، به عنوان مقدار به یکی از ستون های جدول مذکور در دیتابیس ریخت؟
وقتی اینکار رو انجام میدم، میره و از ردیفی که ستون دارای مقدار تموم شده، شروع به مقداردهی میکنه. البته ستونی که مقدار میدم متفاوت از ستونی هست که از ابتدا مقدار داشته است.

ممنون میشم دوستان راهنمایی کنند.

nimaazadi93
دوشنبه 23 تیر 1393, 09:48 صبح
سلام
اگر منظورتونو متوجه شده باشم میخواهید ستون یک جدول با ستون جدول دیگر جایگزین کنی در واقع ویرایش دسته ای میخواهی انجام بدی

اگر دو جدول ارتباط داشته باشه اره میتونی با دستور زیر انجام بدی

Update Table1
Set Field2 = Table2.Field5
From Table2
Where
Table1.Field1 = Table2.Field1



ارتباط بین دو جدول مهمه
با این کار رکوردها با هم ویرایش می شوند

arash69
پنج شنبه 26 تیر 1393, 19:43 عصر
سلام
اگر منظورتونو متوجه شده باشم میخواهید ستون یک جدول با ستون جدول دیگر جایگزین کنی در واقع ویرایش دسته ای میخواهی انجام بدی

اگر دو جدول ارتباط داشته باشه اره میتونی با دستور زیر انجام بدی

Update Table1
Set Field2 = Table2.Field5
From Table2
Where
Table1.Field1 = Table2.Field1



ارتباط بین دو جدول مهمه
با این کار رکوردها با هم ویرایش می شوند

نه دوست عزیز، منظور بنده این نبود، داده هایی که میخوام با SqlBulkCopy توی جدول بریزم؛ داخل برنامه و روی RAM هستند و موقع اجرای برنامه میخوام این داده ها که به صورت یک ستون هستند؛
به صورت کامل و از ابتدای جدول مورد نظر وارد اون بشن، که چون این جدول از قبل دارای یک ستون با مقدار و بقیه ستون ها بدون مقدار هستند، به همین خاطر از ردیفی که ستون دارای مقدار، مقادیرش تموم شده، داده های جدید ریخته میشن که خب این مشکل مطرح شده در سوال بنده هست.

abbas.oveissi
جمعه 27 تیر 1393, 00:32 صبح
نه دوست عزیز، منظور بنده این نبود، داده هایی که میخوام با SqlBulkCopy توی جدول بریزم؛ داخل برنامه و روی RAM هستند و موقع اجرای برنامه میخوام این داده ها که به صورت یک ستون هستند؛
به صورت کامل و از ابتدای جدول مورد نظر وارد اون بشن، که چون این جدول از قبل دارای یک ستون با مقدار و بقیه ستون ها بدون مقدار هستند، به همین خاطر از ردیفی که ستون دارای مقدار، مقادیرش تموم شده، داده های جدید ریخته میشن که خب این مشکل مطرح شده در سوال بنده هست.
الان نمیدونم منم منظورتون رو اشتباه فهمیدم یا درست!!ولی فکر کنم مشکلتون اینه نمیخواید رکورد جدید Insert بشه و میخواید مقدار اون ستون از رکورد های موجود فقط Update بشن.اگر درست فهمیدم باید بگم خود SqlBulkCopy اینکار رو انجام نمیده اما در لینک http://jonathanmagnan.com/extension-methods-sqlbulkcopy یکی اومده یک سری Extension Method درست کرده تا بشه امکان Update هم به SqlBulkCopy اضافه کرد ( البته من خودم تست نکردم و لینکشو گذاشتم خودتون ببینید )