امتیاز موضوع:
  • 2 رأی - میانگین امتیازات: 3.5
  • 1
  • 2
  • 3
  • 4
  • 5
نحوه اضاقه کردن عکس در SQLite????
نویسنده پیام
Fire_Falcon آفلاین
تازه وارد

ارسال‌ها: 14
موضوع‌ها: 6
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 30
( 1 تشکر در 1 ارسال )
ارسال: #1
نحوه اضاقه کردن عکس در SQLite????
سلام دوستان کسی میدونه تو دیتا بیس sqlite چطور میشه tabel عکس درست کرد و با سی شارپ عکس رو بهش اضافه کرد؟
۲۴-اسفند-۱۳۹۲, ۱۳:۱۶:۰۷
ارسال‌ها
پاسخ
Di Di آفلاین
مدير بخش هك و كرك
*****

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

تشکرها : 1816
( 4046 تشکر در 1321 ارسال )
ارسال: #2
RE: نحوه اضاقه کردن عکس در SQLite????
اول بايد يك تيبل بسازي و فيلدي از نوع Blob داخلش توليد كني تا بشه تصوير رو داخلش ذخيره كرد

بعد هم با استفاده از متد زير مي توني تصوير رو ذخيره كني :

کد php:
protected Boolean updateByteArrayInTable(String tableString valuebyte[] byteArrayString expr)
   {
      try
      {
         
SQLiteCommand mycommand = new SQLiteCommand(connection);
         
mycommand.CommandText "update " table " set " value "=@image" " where " expr;
         
SQLiteParameter parameter = new SQLiteParameter("@image"System.Data.DbType.Binary);
         
parameter.Value byteArray;
         
mycommand.Parameters.Add(parameter);

         
int rowsUpdated mycommand.ExecuteNonQuery();
         return (
rowsUpdated>0);
      }
      catch (
Exception)
      {
         return 
false;
      }
   } 

و از كد زير هم براي خواندن مجدد تصوير از بانك استفاده كن

کد php:
protected DataTable executeQuery(String command)
   {
      
DataTable dt = new DataTable();
      try
      {
         
SQLiteCommand mycommand = new SQLiteCommand(connection);
         
mycommand.CommandText command;
         
SQLiteDataReader reader mycommand.ExecuteReader();
         
dt.Load(reader);
         
reader.Close();
         return 
dt;
      }
      catch (
Exception)
      {
         return 
null;
      }
   }

   protected 
DataTable getAllWhere(String tableString sortString expr)
   {
      
String cmd "select * from " table;
      if (
sort != null)
         
cmd += " order by " sort;
      if (
expr != null)
         
cmd += " where " expr;
      
DataTable dt executeQuery(cmd);
      return 
dt;
   }

   public 
DataRow getImage(long rowId) {
      
String where KEY_ROWID_IMAGE " = " Convert.ToString(rowId);
      
DataTable dt getAllWhere(DATABASE_TABLE_IMAGESnullwhere);
      
DataRow dr null;
      if (
dt.Rows.Count 0// should be just 1 row
         
dr dt.Rows[0];
      return 
dr;
   }

   public 
byte[] getImage(DataRow dr) {
      try
      {
         
object image dr[KEY_IMAGE];
         if (!
Convert.IsDBNull(image))
            return (
byte[])image;
         else
            return 
null;
      } catch(
Exception) {
         return 
null;
      }
   }

   
DataRow dri getImage(rowId);
   
byte[] image getImage(dri); 

منبع :
http://stackoverflow.com/questions/62502...rom-sqlite

(آخرین ویرایش در این ارسال: ۲۴-اسفند-۱۳۹۲, ۱۳:۵۹:۲۵، توسط Di Di.)
۲۴-اسفند-۱۳۹۲, ۱۳:۵۷:۵۹
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : babyy, Fire_Falcon, hadikh73, hamed_Arfaee
Fire_Falcon آفلاین
تازه وارد

ارسال‌ها: 14
موضوع‌ها: 6
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 30
( 1 تشکر در 1 ارسال )
ارسال: #3
RE: نحوه اضاقه کردن عکس در SQLite????
مرسی از شما
ولی جدولی که دارم اطلاعات تکست توش هست باید تو همین جدول عکس ذخیره بشه ولی نمیدونم با چه کمندی!!؟؟
کد php:
string Query_forosh "insert into forosh values (@1,@2,@3)";
                
SQLiteCommand cmd4 = new SQLiteCommand(Query_foroshmok.connection);
                
mok.connection.Open();
                
cmd4.Parameters.AddWithValue("@1"serial_forosh.ToString());
                
cmd4.Parameters.AddWithValue("@2"text_addres_forosh.Text);
                
cmd4.Parameters.AddWithValue("@3"System.Data.DbType.Binary); 
شماره سه باید توش عکس ذخیره بشه
نمیدونم باید چطور بنویسمش
(آخرین ویرایش در این ارسال: ۲۴-اسفند-۱۳۹۲, ۱۶:۴۳:۱۳، توسط Fire_Falcon.)
۲۴-اسفند-۱۳۹۲, ۱۶:۳۷:۵۶
ارسال‌ها
پاسخ
Di Di آفلاین
مدير بخش هك و كرك
*****

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

تشکرها : 1816
( 4046 تشکر در 1321 ارسال )
ارسال: #4
RE: نحوه اضاقه کردن عکس در SQLite????
به قول يكي از دوستان دوحالت بيشتر نداره!

يا نوع فيلد شماره 3 رو از String به BLOD تغيير بده

يا به جاي ذخيره عكس داخل ديتابيس،‌ اون رو داخل يك فولدر مشخص روي هارد ذخيره كن و اسم و آدرسش رو داخل بانك قرار بده

۲۴-اسفند-۱۳۹۲, ۱۶:۵۰:۱۱
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : Fire_Falcon, hadikh73, babyy
Fire_Falcon آفلاین
تازه وارد

ارسال‌ها: 14
موضوع‌ها: 6
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 30
( 1 تشکر در 1 ارسال )
ارسال: #5
RE: نحوه اضاقه کردن عکس در SQLite????
(۲۴-اسفند-۱۳۹۲, ۱۶:۵۰:۱۱)Di Di نوشته است: به قول يكي از دوستان دوحالت بيشتر نداره!

يا نوع فيلد شماره 3 رو از String به BLOD تغيير بده

يا به جاي ذخيره عكس داخل ديتابيس،‌ اون رو داخل يك فولدر مشخص روي هارد ذخيره كن و اسم و آدرسش رو داخل بانك قرار بده

مرسی
تغییر دادم
الان آدرس عکس رو بعد از این که کاربر انتخابش کرد بگیرم و تو دستور کمند قرار بدم یا کار دیگه ای باید بکنم؟
مثل زیر؟؟
کد php:
cmd4.Parameters.AddWithValue("@3",@"C:\آدرس\"); 
(آخرین ویرایش در این ارسال: ۲۴-اسفند-۱۳۹۲, ۱۶:۵۵:۰۳، توسط Fire_Falcon.)
۲۴-اسفند-۱۳۹۲, ۱۶:۵۳:۴۷
ارسال‌ها
پاسخ
Di Di آفلاین
مدير بخش هك و كرك
*****

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

تشکرها : 1816
( 4046 تشکر در 1321 ارسال )
ارسال: #6
RE: نحوه اضاقه کردن عکس در SQLite????
دقيقا مثل هميني كه نوشتي

۲۴-اسفند-۱۳۹۲, ۱۶:۵۷:۵۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : Fire_Falcon, babyy
Fire_Falcon آفلاین
تازه وارد

ارسال‌ها: 14
موضوع‌ها: 6
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 30
( 1 تشکر در 1 ارسال )
ارسال: #7
RE: نحوه اضاقه کردن عکس در SQLite????
(۲۴-اسفند-۱۳۹۲, ۱۶:۵۷:۵۰)Di Di نوشته است: دقيقا مثل هميني كه نوشتي
مرسی ولی
اگه بخوام مستقیم عکس ذخیره بشه چی؟؟
اگه میشه به این سبک برام توضیح بدین
از پست اول تقریبا چیزی نفهمیدم...
(آخرین ویرایش در این ارسال: ۲۴-اسفند-۱۳۹۲, ۱۷:۰۹:۲۴، توسط Fire_Falcon.)
۲۴-اسفند-۱۳۹۲, ۱۷:۰۸:۴۰
ارسال‌ها
پاسخ
Di Di آفلاین
مدير بخش هك و كرك
*****

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

تشکرها : 1816
( 4046 تشکر در 1321 ارسال )
ارسال: #8
RE: نحوه اضاقه کردن عکس در SQLite????
خوب شما اول بايد ديتاتايپ اون فيلد رو از Text‌به BLOB تغيير بدي.

اين كار داخل ديزاينر ديتابيس قابل انجام هست و كار خاصي نداره

بعدش مي ريم سراغ كد نويسي

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

کد php:
protected Boolean updateByteArrayInTable(String tableString valuebyte[] byteArrayString expr

در اينجا پارامترهاي مورد نياز رو بهش مي ديم
Table = نام جدول
Value = نام فيلد
Byte[] = بايت هاي تصوير كه بايد ذخيره شوند
expr = شرطي كه به وسيله آن ركوردي كه مخي واهيم آپديتش كنيم شناسايي شود

خوب تنها كاري كه بايد انجام بديد اينه كه مقدار پارامترها رو بديد به اين روتين تا تصوير ذخيره بشه

۲۴-اسفند-۱۳۹۲, ۱۷:۵۶:۰۱
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : babyy, Fire_Falcon
Fire_Falcon آفلاین
تازه وارد

ارسال‌ها: 14
موضوع‌ها: 6
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 30
( 1 تشکر در 1 ارسال )
ارسال: #9
RE: نحوه اضاقه کردن عکس در SQLite????
(۲۴-اسفند-۱۳۹۲, ۱۷:۵۶:۰۱)Di Di نوشته است: Byte[] = بايت هاي تصوير كه بايد ذخيره شوند
expr = شرطي كه به وسيله آن ركوردي كه مخي واهيم آپديتش كنيم شناسايي شود
مرسی
ولی مشکله من هم همین دوتا هست!
چجوری بایت های تصویر رو بهش بدم
- منظور از شرط چیه!!!
- آدرس تصویر از کجا داده میشه که ذخیره بشه؟؟
۲۵-اسفند-۱۳۹۲, ۱۳:۰۱:۱۲
ارسال‌ها
پاسخ
Di Di آفلاین
مدير بخش هك و كرك
*****

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

تشکرها : 1816
( 4046 تشکر در 1321 ارسال )
ارسال: #10
RE: نحوه اضاقه کردن عکس در SQLite????
(۲۵-اسفند-۱۳۹۲, ۱۳:۰۱:۱۲)Fire_Falcon نوشته است: چجوری بایت های تصویر رو بهش بدم

خوب شما بايد عكس رو تبديل به بايت كنيد
کد php:
Image photo = new Bitmap(@"\Photos\Image20120601_1.jpeg");
byte[] pic ImageToByte(photoSystem.Drawing.Imaging.ImageFormat.Jpeg); 


(۲۵-اسفند-۱۳۹۲, ۱۳:۰۱:۱۲)Fire_Falcon نوشته است: - منظور از شرط چیه!!!
شما فرض كن هر ركورد مربوط به تصوير علاوه بر خود عكس شامل اطلاعات ديگه اي مثل نام و شماره و ... هم هست
حالا براي اينكه بدوني عكس مربوط به كدوم ركورد رو مي خواي ذخيره كني بايد يه شرط بگذاري مثلا بگي ركوردي كه شماره اش

125 هست يا ركوردي كه اسمش هست Saed‌يا غيره
کد php:
Update forosh Set @1=125 where @2=100 
در مثال بالا قسمت بعد از where همون شرط ماست


(۲۵-اسفند-۱۳۹۲, ۱۳:۰۱:۱۲)Fire_Falcon نوشته است: - آدرس تصویر از کجا داده میشه که ذخیره بشه؟؟
آدرس رو هم يا خودت دستي بده مثل مثال من يا با يك ديالوگ باكس از كاربر بخواه تا خودش از داخل كامپيوتر انتخاب كنه

اين هم يك مثال براي ذخيره عكس در ديتابيس و فراخواني و نمايش اون روي فرم

کد php:
namespace ImagenSQLite
{
    public 
partial class Form1 Form
    
{
        public 
Form1()
        {
            
InitializeComponent();
            
Image photo = new Bitmap(@"\Photos\Image20120601_1.jpeg");
            
byte[] pic ImageToByte(photoSystem.Drawing.Imaging.ImageFormat.Jpeg);
            
SaveImage(pic);
            
LoadImage();
        }

        public 
byte[] ImageToByte(Image imageSystem.Drawing.Imaging.ImageFormat format){
            
using (MemoryStream ms = new MemoryStream())
            {
                
// Convert Image to byte[]
                
image.Save(msformat);
                
byte[] imageBytes ms.ToArray();
                return 
imageBytes;
            }
        }
        
//public Image Base64ToImage(string base64String)
         
public Image ByteToImage(byte[] imageBytes)
        {
            
// Convert byte[] to Image
            
MemoryStream ms = new MemoryStream(imageBytes0imageBytes.Length);
            
ms.Write(imageBytes0imageBytes.Length);
            
Image image = new Bitmap(ms);
            return 
image;
        }
        
/***************** SQLite **************************/
        
void SaveImage(byte[] imagen){
            
string conStringDatosUsuarios = @" Data Source = \Program Files\GPS___CAM\Data\DatosUsuarios.s3db ";            
            
SQLiteConnection con = new SQLiteConnection(conStringDatosUsuarios); 
            
SQLiteCommand cmd con.CreateCommand();
            
cmd.CommandText String.Format("INSERT INTO Empleados (Foto) VALUES (@0);");
            
SQLiteParameter param = new SQLiteParameter("@0"System.Data.DbType.Binary);
            
param.Value imagen;
            
cmd.Parameters.Add(param);
            
con.Open();

            try
            {
                
cmd.ExecuteNonQuery();
            }
            catch (
Exception exc1)
            {
                
MessageBox.Show(exc1.Message);
            }
            
con.Close();
        }
        
void LoadImage(){
            
string query "SELECT Photo FROM Table WHERE ID='5';";
            
string conString = @" Data Source = \Program Files\Users.s3db ";
            
SQLiteConnection con = new SQLiteConnection(conString); 
            
SQLiteCommand cmd = new SQLiteCommand(querycon);            
            
con.Open();
            try
            {
                
IDataReader rdr cmd.ExecuteReader();
                try
                {
                    while (
rdr.Read())
                    {
                        
byte[] = (System.Byte[])rdr[0];
                        
pictureBox1.Image ByteToImage(a);
                    }
                }
                catch (
Exception exc) { MessageBox.Show(exc.Message); }
            }
            catch (
Exception ex) { MessageBox.Show(ex.Message); }
            
con.Close();
        }       
    }


(آخرین ویرایش در این ارسال: ۲۵-اسفند-۱۳۹۲, ۱۶:۲۳:۰۶، توسط Di Di.)
۲۵-اسفند-۱۳۹۲, ۱۶:۲۰:۲۳
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : Fire_Falcon, babyy


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  نحوه ورود اطلاعات در یک سایت در فرم C# farabi 2 3,293 ۱۶-آذر-۱۳۹۳, ۲۲:۳۹:۴۰
آخرین ارسال: Ghoghnus
  نحوه استفاده ازdll iran58 2 2,939 ۰۳-مهر-۱۳۸۹, ۱۵:۰۱:۳۵
آخرین ارسال: mehdi2004171
  نحوه استفاده ازregular iran58 1 2,384 ۰۱-مهر-۱۳۸۹, ۲۰:۳۹:۲۱
آخرین ارسال: ajlajlajl
  نحوه استفاده توابع نتورک فریم ورک در #C black_jay_666 2 3,363 ۰۳-آذر-۱۳۸۷, ۱۴:۴۷:۰۳
آخرین ارسال: Payman62
  نحوه شناسایی هاندل تکست باکس پنجره های مختلف amir-haghighi 1 2,266 ۲۸-اردیبهشت-۱۳۸۷, ۲۳:۳۰:۵۳
آخرین ارسال: lord_viper

پرش به انجمن:


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

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