PDA

View Full Version : ذخیره عکس از هارد در دیتابیس به صورت دسته جمعی



mraforums
یک شنبه 30 شهریور 1399, 12:02 عصر
با سلام خدمت مهندسین محترم

من یک جدول دارم که حاوی کد ملی هست. و روی هارد یک پوشه هست که داخل آن عکس با نام همین کد ملی ها ذخیره شده .حالا می خوام تصویر هر کد ملی در فیلد مربوط به هر رکورد که از نوع image هست رو در یک جدول ذخیره کنم.

لطفا راهنمایی بفرمایید.

مهدی کرامتی
یک شنبه 30 شهریور 1399, 16:54 عصر
اگر سرچ کنی کد نمونه برای انجام این کار زیاد هست. کافیه یک فیلد از جنس باینری در جدول مربوطه در نظر بگیری و عکس ها رو در اون ذخیره کنی.

یک حالت دیگر هم ممکن است: فایل های تصویر رو بخون، به یک استرینگ Base64 تبدیل کن و در یک ستون از جنس varvhar(max) نگهداری کن.

اگر کدهای مربوطه رو پیدا نکرده اطلاع بده.

mraforums
دوشنبه 31 شهریور 1399, 07:40 صبح
اگر سرچ کنی کد نمونه برای انجام این کار زیاد هست. کافیه یک فیلد از جنس باینری در جدول مربوطه در نظر بگیری و عکس ها رو در اون ذخیره کنی.

یک حالت دیگر هم ممکن است: فایل های تصویر رو بخون، به یک استرینگ Base64 تبدیل کن و در یک ستون از جنس varvhar(max) نگهداری کن.

اگر کدهای مربوطه رو پیدا نکرده اطلاع بده.

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

alireza264
جمعه 04 مهر 1399, 01:00 صبح
کد های ذخیره عکس در دیتا بیس رو دارم بیشتر این کدها برای یه رکورد یه دیالوگ باز میکنه مسیر عکس رو میدی و ذخیره میکنه مثل اینکه برای مخاطبان دفترچه تلفن عکس انتخاب بکنی. مشکل من یه خورده از این متفاوت تر هست و اون اینکه فرض کنید 3000 هزار تا رکورد دارم و 3000 تا عکس که در یک پوشه ذخیره شده اند حالا می خوام کدی داشته باشیم که به فرض مثال با یک کلیک عکس مربوط به هر رکورد را در جدول ذخیره بکنه لازم به ذکر هست نام عکس ها با کد ملی ذخیره شده و در جدول هم کد ملی داریم. یعنی با کد ملی چک بکنه ببینه عکس درون پوشه هست اگر بود اونو برای رکورد ذخیره بکنه و بره رکورد بعدی.

سلام
ابتدا باید نام همه فایلهل رو بخونی و دریک آرایه بریزی و بعدبا استفاده از حلقه for یکی یکی در دیتابیس بنویسی
این کد کمکت میکنه



var dialog = new FolderBrowserDialog();
DialogResult result = dialog.ShowDialog();
if (result == System.Windows.Forms.DialogResult.OK)
{
pathname = pathRoot = dialog.SelectedPath;
DirectoryInfo objDirectoryInfo = new DirectoryInfo(pathname);
FileInfo[] allFiles = objDirectoryInfo.GetFiles("*.*", SearchOption.AllDirectories);
}




for (int i = 0; i < allFiles.Length; i++)
{
string fileName = allFiles[i].FullName.Trim();
string parentDir = allFiles[i].Directory.Name.Trim();
.
.
.
}

alireza264
جمعه 04 مهر 1399, 01:03 صبح
با سلام خدمت مهندسین محترم

من یک جدول دارم که حاوی کد ملی هست. و روی هارد یک پوشه هست که داخل آن عکس با نام همین کد ملی ها ذخیره شده .حالا می خوام تصویر هر کد ملی در فیلد مربوط به هر رکورد که از نوع image هست رو در یک جدول ذخیره کنم.

لطفا راهنمایی بفرمایید.

سلام
ابتدا باید نام همه فایلها رو بخونی و در یک آرایه بریزی بعد با حلقه for یکی یکی در بانک بنوبیسی
این کد کمکت میکنه



// انتخاب مسیر
var dialog = new FolderBrowserDialog();
DialogResult result = dialog.ShowDialog();
if (result == System.Windows.Forms.DialogResult.OK)
{
pathname = pathRoot = dialog.SelectedPath;

// خوندن همه فایلهلی مسیر انتخابی و ریختن در آرایه
DirectoryInfo objDirectoryInfo = new DirectoryInfo(pathname);
FileInfo[] allFiles = objDirectoryInfo.GetFiles("*.*", SearchOption.AllDirectories);
}


// خواندن نام فایلها از آرایه و ..

for (int i = 0; i < allFiles.Length; i++)
{
string fileName = allFiles[i].FullName.Trim();
string parentDir = allFiles[i].Directory.Name.Trim();
.
.
.
}

abdullah20
جمعه 04 مهر 1399, 12:58 عصر
با درود
برای درج یا ویرایش چندین رکورد به صورت یکجا نباید تک تک عمل کرد
اگر تکنولوژی ارتباط با پایگاه داده شما Ado.net است از SqlBulkCopy استفاده کنید
اگر هم EF که خودش یک سری متد داره و همینطور برای سرعت بیشتر میتونید از کتابخانه های جانبی استفاده کنید