Javad Mahmoodi

sqlserver
نحوه ارسال اطلاعات از sqlite به sql server

8 ارسال در این موضوع قرار دارد

سلام

من میخوام تمام اطلاعات ذخیره شده در برنامه ام را که در sqlite هست رو با زدن دکمه ارسال و بصورت یکجا به دیتابیس sql server ارسال کنم.

کانکشن رو بین برنامم و sql server  که توسط کتابخانه jdbc هست ایجاد کردم.

الان مشکلم این هست که چجوری تمام اطلاعات رو مستقیم و فقط با زدن دکمه ارسال به sql server ارسال کنم.

ممنون میشم راهنمایی فرمایید(ترجیحاً با کد)

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام و درود

دوست من شما میتونید هم با Connection String  اینکارو انجام بدین(که من بشخصه بخاطر حساسیت و سختی توصیه نمیکنم)

و هم با webservice 

یعنی شما یه Select all توی sqllite میزنید بعد با حلقه For دونه دونه ارسال میکنید سمت sql server که بنظر من راحتترین کار هستش

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 52 دقیقه قبل، daryani گفته است :

سلام و درود

دوست من شما میتونید هم با Connection String  اینکارو انجام بدین(که من بشخصه بخاطر حساسیت و سختی توصیه نمیکنم)

و هم با webservice 

یعنی شما یه Select all توی sqllite میزنید بعد با حلقه For دونه دونه ارسال میکنید سمت sql server که بنظر من راحتترین کار هستش

سلام

مهندس، من یک کلاس G ساختم و کویری هارو داخلش انجام میدم

برای ارتباط با sqlserver ابتدا مانند زیر کانکشن رو ساختم

    Connection conn;
    String url = "";
    String DBName = "***********";
    String UserName = "***";
    String Password = "*************";
    String Servername = "192.168.**.**";
    Statement st;
    ResultSet rs;



   public void open() {

        try {
            Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
            url = "jdbc:jtds:sqlserver://" + Servername + ";Database=" + DBName + ";user=" + UserName + ";password=" + Password;
            conn = DriverManager.getConnection(url);
        } catch (Exception e) {
            Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
        }

    }

با کد زیر دارم داده هارو از sqlite میگیرم و داخل متغیر هایی که تعریف کردم میریزم.کد زیر:

    public void getDataDD() {
        Cursor cursor = database.rawQuery("SELECT * FROM dd WHERE InsID=" + LoginActivity.textUser, null);
        while (cursor.moveToNext()) {
            Gcode = cursor.getInt(cursor.getColumnIndex("code"));
            GInsID = cursor.getInt(cursor.getColumnIndex("InsID"));
            GDate = cursor.getString(cursor.getColumnIndex("Date"));
            GTime = cursor.getString(cursor.getColumnIndex("Time"));
            GcocaStockShare = cursor.getInt(cursor.getColumnIndex("cocaStockShare"));
            GcocaHandLes = cursor.getInt(cursor.getColumnIndex("cocaHandLes"));
            GcocoCoolerA = cursor.getInt(cursor.getColumnIndex("cocoCoolerA"));
            GcocoNoDoors = cursor.getInt(cursor.getColumnIndex("cocoNoDoors"));
            GcocoNoShelvesAbuse = cursor.getInt(cursor.getColumnIndex("cocoNoShelvesAbuse"));
            GcocoTotalNoShelves = cursor.getInt(cursor.getColumnIndex("cocoTotalNoShelves"));
            GcocoFillUtilization = cursor.getInt(cursor.getColumnIndex("cocoFillUtilization"));
            GcocoMerchandising = cursor.getInt(cursor.getColumnIndex("cocoMerchandising"));
            GcocoPlanogram = cursor.getInt(cursor.getColumnIndex("cocoPlanogram"));
            GcocoPosition = cursor.getInt(cursor.getColumnIndex("cocoPosition"));
            GcocoCondition = cursor.getInt(cursor.getColumnIndex("cocoCondition"));
            GcocoApprance = cursor.getInt(cursor.getColumnIndex("cocoApprance"));
        }
        cursor.close();
    }

حالا می خوام با متد زیر که برای کتابخونه مربوطه هست تمام داده هارو به sqlserver ارسال کنم که مشکلم فکر میکنم اینجا باشه که نمیدونم چجوری این کار رو باید بکنم.....

    public void save(String sql) {
        try {
            st = conn.createStatement();
            st.executeQuery(sql);

        } catch (Exception e) {
            Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
        }
    }


کد زیر رو هم داخل کلاسی که میخوام اضافه کردم......

db.save("INSERT INTO InspectionDB.dbo.ddtest VALUES ('" + g.Garea + "','" + g.Ganbar + "','" + g.Gsm + "','" + g.Gasm + "','" + g.Gsv + "','" + g.Gv + "','" + g.Groot + "','" + g.Gcode + "','" + g.Gname + "','" + g.Gadress +
                                "','" + g.Gpishe + "','" + g.Ggsb + "','" + g.Gtel + "','" + g.Gx + "','" + g.Gy + "','" + g.Gcode + "','" + g.GInsID + "','" + g.GDate + "','" + g.GTime + "','" + g.GcocaStockShare + "','" + g.GcocaHandLes + "','" + g.GcocoCoolerA +
                                "','" + g.GcocoNoDoors + "','" + g.GcocoNoShelvesAbuse + "','" + g.GcocoTotalNoShelves + "','" + g.GcocoFillUtilization + "','" + g.GcocoMerchandising + "','" + g.GcocoPlanogram +
                                "','" + g.GcocoPosition + "','" + g.GcocoCondition + "','" + g.GcocoApprance + "')");

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

ما چیکار کنیم که مبتدی هستیم مهندس عزیز...

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در در 1397/10/04, 13:21:59، daryani گفته است :

سلام و درود

دوست من شما میتونید هم با Connection String  اینکارو انجام بدین(که من بشخصه بخاطر حساسیت و سختی توصیه نمیکنم)

و هم با webservice 

یعنی شما یه Select all توی sqllite میزنید بعد با حلقه For دونه دونه ارسال میکنید سمت sql server که بنظر من راحتترین کار هستش

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

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام. منم می خوام همچین کاری بکنم. ممنون میشم اگه به صورت کامل توضیح بدین.

در اصل یک برنامه اندروید دارم که اطلاعات اون در SQLite ذخیره میشن و می خوام کاربر هر وقت که به اینترنت وصل شد و دکمه بارگذاری رو زد اطلاعات SQLite روی هاست (SQL Server) ذخیره بشه. و هر وقت هم خواست به صورت آنلاین با سرور کار کنه بتونه آنلاین اطلاعات رو ببینه و ذخیره کنه.

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 7 دقیقه قبل، amin_msd گفته است :

سلام. منم می خوام همچین کاری بکنم. ممنون میشم اگه به صورت کامل توضیح بدین.

در اصل یک برنامه اندروید دارم که اطلاعات اون در SQLite ذخیره میشن و می خوام کاربر هر وقت که به اینترنت وصل شد و دکمه بارگذاری رو زد اطلاعات SQLite روی هاست (SQL Server) ذخیره بشه. و هر وقت هم خواست به صورت آنلاین با سرور کار کنه بتونه آنلاین اطلاعات رو ببینه و ذخیره کنه.

در یه پست دیگه یک آموزش دیدم از Connection string گذاشته بودید.

روش connection string میگن امنیت خوبی نداره. درسته؟ اگه میشه امنیتشو بالا برد میشه بگید چطوری؟ و همین طور روش وب سرویس رو اگه میشه با یک مثال بگین.(من مبتدی هستم) ممنون

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در در 1397/10/04, 14:26:47، Javad Mahmoodi گفته است :

سلام

مهندس، من یک کلاس G ساختم و کویری هارو داخلش انجام میدم

برای ارتباط با sqlserver ابتدا مانند زیر کانکشن رو ساختم


    Connection conn;
    String url = "";
    String DBName = "***********";
    String UserName = "***";
    String Password = "*************";
    String Servername = "192.168.**.**";
    Statement st;
    ResultSet rs;



   public void open() {

        try {
            Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
            url = "jdbc:jtds:sqlserver://" + Servername + ";Database=" + DBName + ";user=" + UserName + ";password=" + Password;
            conn = DriverManager.getConnection(url);
        } catch (Exception e) {
            Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
        }

    }

با کد زیر دارم داده هارو از sqlite میگیرم و داخل متغیر هایی که تعریف کردم میریزم.کد زیر:


    public void getDataDD() {
        Cursor cursor = database.rawQuery("SELECT * FROM dd WHERE InsID=" + LoginActivity.textUser, null);
        while (cursor.moveToNext()) {
            Gcode = cursor.getInt(cursor.getColumnIndex("code"));
            GInsID = cursor.getInt(cursor.getColumnIndex("InsID"));
            GDate = cursor.getString(cursor.getColumnIndex("Date"));
            GTime = cursor.getString(cursor.getColumnIndex("Time"));
            GcocaStockShare = cursor.getInt(cursor.getColumnIndex("cocaStockShare"));
            GcocaHandLes = cursor.getInt(cursor.getColumnIndex("cocaHandLes"));
            GcocoCoolerA = cursor.getInt(cursor.getColumnIndex("cocoCoolerA"));
            GcocoNoDoors = cursor.getInt(cursor.getColumnIndex("cocoNoDoors"));
            GcocoNoShelvesAbuse = cursor.getInt(cursor.getColumnIndex("cocoNoShelvesAbuse"));
            GcocoTotalNoShelves = cursor.getInt(cursor.getColumnIndex("cocoTotalNoShelves"));
            GcocoFillUtilization = cursor.getInt(cursor.getColumnIndex("cocoFillUtilization"));
            GcocoMerchandising = cursor.getInt(cursor.getColumnIndex("cocoMerchandising"));
            GcocoPlanogram = cursor.getInt(cursor.getColumnIndex("cocoPlanogram"));
            GcocoPosition = cursor.getInt(cursor.getColumnIndex("cocoPosition"));
            GcocoCondition = cursor.getInt(cursor.getColumnIndex("cocoCondition"));
            GcocoApprance = cursor.getInt(cursor.getColumnIndex("cocoApprance"));
        }
        cursor.close();
    }

حالا می خوام با متد زیر که برای کتابخونه مربوطه هست تمام داده هارو به sqlserver ارسال کنم که مشکلم فکر میکنم اینجا باشه که نمیدونم چجوری این کار رو باید بکنم.....


    public void save(String sql) {
        try {
            st = conn.createStatement();
            st.executeQuery(sql);

        } catch (Exception e) {
            Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
        }
    }


کد زیر رو هم داخل کلاسی که میخوام اضافه کردم......

db.save("INSERT INTO InspectionDB.dbo.ddtest VALUES ('" + g.Garea + "','" + g.Ganbar + "','" + g.Gsm + "','" + g.Gasm + "','" + g.Gsv + "','" + g.Gv + "','" + g.Groot + "','" + g.Gcode + "','" + g.Gname + "','" + g.Gadress +
                                "','" + g.Gpishe + "','" + g.Ggsb + "','" + g.Gtel + "','" + g.Gx + "','" + g.Gy + "','" + g.Gcode + "','" + g.GInsID + "','" + g.GDate + "','" + g.GTime + "','" + g.GcocaStockShare + "','" + g.GcocaHandLes + "','" + g.GcocoCoolerA +
                                "','" + g.GcocoNoDoors + "','" + g.GcocoNoShelvesAbuse + "','" + g.GcocoTotalNoShelves + "','" + g.GcocoFillUtilization + "','" + g.GcocoMerchandising + "','" + g.GcocoPlanogram +
                                "','" + g.GcocoPosition + "','" + g.GcocoCondition + "','" + g.GcocoApprance + "')");

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

ما چیکار کنیم که مبتدی هستیم مهندس عزیز...

 

در 14 ساعت قبل، amin_msd گفته است :

در یه پست دیگه یک آموزش دیدم از Connection string گذاشته بودید.

روش connection string میگن امنیت خوبی نداره. درسته؟ اگه میشه امنیتشو بالا برد میشه بگید چطوری؟ و همین طور روش وب سرویس رو اگه میشه با یک مثال بگین.(من مبتدی هستم) ممنون

با عرض پوزش بخاطر منتظر موندن شما دوستان گرامی

در اسرع وقت با مثال سعی میکنم توضیح عرض کنم خدمتتون

ولی Connection String رو انجام ندین بهتره.تجربه ای هست که صرفا به من هم منتقل شده

1 کاربر پسند دیده است

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 2 ساعت قبل، daryani گفته است :

 

با عرض پوزش بخاطر منتظر موندن شما دوستان گرامی

در اسرع وقت با مثال سعی میکنم توضیح عرض کنم خدمتتون

ولی Connection String رو انجام ندین بهتره.تجربه ای هست که صرفا به من هم منتقل شده

خواهش میکنم اختیار دارین. لطف می کنید جناب مهندس دریانی :sleepy:

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط parsdc
      سلام به همه دوستان
      زمانی که سرچ میکنیم در دیتابیس sqlite در لیست نام فارسی، متاسفانه حروف گ چ پ ژ ک بدون ترتیب حروف برمیگردونه، در این مورد تحقیق ها و تست های زیادی کردم، و متوجه شدم کد اسکی این حروف از نظر عددی  نظم ترتیبی ندارد
      لیست حروف فارسی با کد اسکی رو ببینید
      192    ہ
      193    ء
      194    آ
      195    أ
      196    ؤ
      197    إ
      198    ئ
      199    ا
      200    ب
      201    ة
      202    ت
      203    ث
      204    ج
      205    ح
      206    خ
      207    د
      208    ذ
      209    ر
      210    ز
      211    س
      212    ش
      213    ص
      214    ض
      215    ×
      216    ط
      217    ظ
      218    ع
      219    غ
      220    ـ
      221    ف
      222    ق
      223    ك
      224    à
      225    ل
      226    â
      227    م
      228    ن
      229    ه
      230    و
       
      236    ى
      237    ي
       
      129    پ
      141    چ
      142    ژ
      152    ک
      144    گ

      حرف ک عربی 223 هست در جای خودش هست اما ک فارسی 152 هست از عدد حرف آ هم کمتر هست و در سرچ بالاتر از آ قرار میگیره
      سایر حروف مشکل دار هم به همین شکل پ چ ژ ک گ
      کد های utf8 هم بررسی کردم و این مشکل رو داره، واقعا نمیدونم ماکروسافت چیکار کرده که در دیتابیس های اون این مشکل وجود نداره، شما راه حلی اصولی براش نمیشناسید؟
    • توسط jonoob
      سلام به همگی
      من دو تیبل دارم به نامهای
       id+start+end=data1
      id+id data1+name+price=data2
      در بالا نام تیبل و فیلدها را نوشتم
      همینطور که در فیلدها میبینید در تیبل دو ای دی تیبل یک هم نوشته شده میخواهم وقتی مثلا ایدی یک تیبل یک فراخوانی بشه اطلاعاتی که در تیبل دو هست و ای دی دیتاش یکی هست هم نمایش داده بشه
      متشکرم
    • توسط fahmide
      با سلام
      من توی پروژم یک ExpandableListView دارم و یه دیتابیس توی دیتابیس با استفاده از کد والد ، والد هرکدوم از فرزندان مشخص میشه. مسله اینه که کاربر امکان اضافه کردن والد و فرزند رو توی دیتابیس داره من هرکاری میکنم درست لود نمیشه اگه ممکنه راهنمایی کنین
    • توسط مهندس
      سلام دوستان.
      چجوری میتونم ساعت رو در دیتابیس sqlite ذخیره کنم؟؟
      منظورم اینه ک من یکسری داده دارم میخام وقتی ثبت دیتابیس شد، ساعتی ک کاربر داده رو ثبت میکنه هم در یک فیلد ثبت بشه.
      من یه فیلد با نوع TIME در دیتابیس گذاشتم، اما نمیدونم چجوری و با چه توابعی ساعت رو ذخیره کنم؟؟
      در ضمن راهی هست ک ساعت واقعی ثبت بشه؟؟
      یعنی اینکه اگه یه وقت کاربر ساعت گوشیشو تغییر داد، بازم تایم واقعی time zone ایران ثبت بشه ؟؟؟
    • توسط b.kordtabar
      با سلام
      می خواهم لیستی از داده ها را در پایگاه داده sqlite اندروید ذخیره کنم داده مربوط به ستون آخر نمایش داده نمی شود
      کد مربوطه را ارسال می کنم، اگر می توانید راهنمایی کنید.
      package com.example.t.newsqlite; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import java.util.ArrayList; import java.util.List; public class DatabaseHandler extends SQLiteOpenHelper { private static final int DATABASE_VERSION = 1; private static final String DATABASE_NAME = "carManager"; private static final String TABLE_CONTACTS = "cars"; private static final String KEY_ID = "id"; private static final String KEY_BRAND = "brand"; private static final String KEY_WORKED = "worked"; private static final String KEY_MODEL="model"; public DatabaseHandler(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "(" + KEY_ID + " INTEGER PRIMARY KEY," + KEY_BRAND + " TEXT," + KEY_WORKED + " TEXT," + KEY_MODEL + " TEXT " + ")"; db.execSQL(CREATE_CONTACTS_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS); onCreate(db); } public void addContact(Car car) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(KEY_BRAND, car.getBrand()); values.put(KEY_WORKED, car.getWorked()); values.put(KEY_MODEL, car.getModel()); db.insert(TABLE_CONTACTS, null, values); db.close(); } public Car getContact(int id) { SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db.query(TABLE_CONTACTS, new String[]{KEY_ID, KEY_BRAND, KEY_WORKED, KEY_MODEL}, KEY_ID + "=?", new String[]{String.valueOf(id)}, null, null, null, null); if (cursor != null) cursor.moveToFirst(); Car car = new Car(Integer.parseInt(cursor.getString(0)), cursor.getString(1), cursor.getString(2),cursor.getString(3)); // return contact return car; } public List<Car> getAllContacts() { List<Car> contactList = new ArrayList<Car>(); // Select All Query String selectQuery = "SELECT * FROM " + TABLE_CONTACTS; SQLiteDatabase db = this.getWritableDatabase(); Cursor cursor = db.rawQuery(selectQuery, null); // looping through all rows and adding to list if (cursor.moveToFirst()) { do { Car car = new Car(); car.setID(Integer.parseInt(cursor.getString(0))); car.setBrand(cursor.getString(1)); car.setWorked(cursor.getString(2)); car.setModel(cursor.getString(3)); // Adding contact to list contactList.add(car); } while (cursor.moveToNext()); } // return contact list return contactList; } public int getContactsCount() { String countQuery = "SELECT * FROM " + TABLE_CONTACTS; SQLiteDatabase db = this.getReadableDatabase(); Cursor cursor = db.rawQuery(countQuery, null); cursor.close(); // return count return cursor.getCount(); } public int updateContact(Car car) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(KEY_BRAND, car.getBrand()); values.put(KEY_WORKED, car.getWorked()); values.put(KEY_MODEL, car.getModel()); // updating row return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?", new String[] { String.valueOf(car.getID()) }); } public void deleteContact(Car contact) { SQLiteDatabase db = this.getWritableDatabase(); db.delete(TABLE_CONTACTS, KEY_ID + " = ?", new String[] { String.valueOf(contact.getID()) }); db.close(); } } package com.example.t.newsqlite; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.widget.TextView; public class AndroidSQLiteTutorialActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); DatabaseHandler db = new DatabaseHandler(this); /** * CRUD Operations * */ // Inserting Contacts Log.d("Insert: ", "Inserting .."); db.addContact(new Car("رنو","کارکرده","GGF")); db.addContact(new Car("تویوتا","صفر کیلومتر","FD")); db.addContact(new Car("بیوک", "حواله","GDG")); // Reading all contacts Log.d("Reading: ", "Reading all contacts.."); List<Car> car = db.getAllContacts(); for (Car cn : car) { String log = "Id: " + cn.getID() + " ,Brand: " + cn.getBrand() + " ,Worked: " + cn.getWorked() + " ,Model: " + cn.getModel(); // Writing Contacts to log Log.d("Name: ", log); } } } package com.example.t.newsqlite; public class Car { //private variables int id; String brand; String worked; String model; public Car(){ } public Car(int id, String brand,String worked,String model){ this.id = id; this.brand=brand; this.worked=worked; this.model=model; } // constructor public Car(String brand,String worked,String model){ this.brand=brand; this.worked=worked; this.model=model; } public int getID(){ return this.id; } public void setID(int id){ this.id = id; } // getting name public String getBrand(){ return this.brand; } // setting name public void setBrand(String brand){ this.brand = brand; } // getting phone number public String getWorked(){ return this.worked; } // setting phone number public void setWorked(String worked){ this.worked = worked; } public String getModel(){ return this.model; } public void setModel(String model){ this.model = model; } }  

  • دوره آموزشی اندروید آموزش ویدئویی اندروید سورس اندروید دوره اندروید آموزش Kotlin آموزش برنامه نویسی ios مهارت های فروش طراحی اپلیکیشن کوردینا موزیک Kurdina Music موزیک کردی Android Framework
  • فایل