رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

اتصال به sqlserver در اندروید


پست های پیشنهاد شده

سلام و عرض ادب

من به مشکل بزرگی برخوردم  و خیلی روش زمان گذاشتم ولی به نتیجه ای متسفانه نرسیدم

چطوری میتونم در اندروید تبلت یا گوشی به پایگاه داده sql server وصل بشم ؟

نمونه های زیادی در سایت های خارجی هست ولی با هیچ یک جوابی نگرفتم

برای متصل شدن به sql server از کد زیر استفاده می کنم 

[shcode=java]

shcode=java]package com.example.saeed;

align=left]import java.sql.DriverManager;

import android.os.Bundle;

import android.app.Activity;

import android.view.Menu;

import android.widget.TextView;

import java.sql.Connection;

[align=left]import java.sql.DriverManager;

import java.sql.SQLException;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Connection connection = null;

 try {

String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

Class.forName(driverName);

// Create a connection to the database

String serverName = "192.168.1.250";

String serverPort = "1433";

String database = serverName + ":" + serverPort;

// String database = serverName ;

String url = "jdbc:sqlserver://" + database;

String username = "sa";

String password = "147855";

connection = DriverManager.getConnection(url ,username,password);

System.out.println("Successfully Connected to the database!");

} catch (ClassNotFoundException e) {

System.out.println("Could not find the database driver " + e.getMessage());

} catch (SQLException e) {

System.out.println("Could not connect to the database " + e.getMessage());

}

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.main, menu);

return true;

}

}

[/shcode]

که خطای زیر را می دهد البته همه کدهای که تست کردم آخرش همین پیغام میدن 

  Could not connect to the database The TCP/IP connection to the host 192.168.1.250, port 1433 has failed. Error: "socket failed: EACCES (Permission denied). Verify the connection properties. Make sure that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port. Make sure that TCP connections to the port are not blocked by a firewall.".

اینم بگم با NetBeans IDE 7.3.1 تست می زنم ارتباط برقرار میشه راستش من خودم احتمال میدم که سیستم (IP) رو پیدا نمی کنه که همین پیغام رو میده باید Permission خاصی بدم یا ؟

 برنامه ای که میسازم با Eclipse هستش و apk رو هم رو ماشین مجازی تست می زنم هم رو تبلت واقعی که خروجی شون همان خطای بالایی هستش

کل زحمت چند ماهم به این بنده لطفا راهنماییم کنید حتی با هزینه هم باشه مشکلی نیست فقط ارتباط برقرار بشه

خواهشا کمکم کنید ممنونم

منتظر جوابتان هستم

باتشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 4 هفته بعد...

به کمک خدای بزرگ مشکل برطرف شد!

قربانت خداااااااااااااااااااااااااااااااااااااااااااااااااااا

میشه بگین چجوری من هم چند مدتی این مشکل و دارم چه جوری حلش کنم


من مشکلم اینکه نمی تونم وصل شم و این error

the driver could not establish a secure connection to sql server by using secure sockets layers ssl encryption error  ulable to make socket non blocking

 می ده

لطفا کمکم کنید چند وقتی الافم کرده

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

کد من

public void ConSql()

    {

       

       

               

         try

         {

       

               int port=1433;

               Socket s;

             

              

                Toast.makeText(this , "  ConSql 1  "    , Toast.LENGTH_LONG).show();

             

              

               

                String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver" ;

                     

             

                Class.forName(driver).newInstance();

               

                Toast.makeText(this , "  ConSql 2  "    , Toast.LENGTH_LONG).show();

               

               

               

                Connection conn =DriverManager.getConnection("jdbc:sqlserver://192.168.0.161 :1433   ; databaseName=myDBName ;user=UserDB ;password=PassDB ; ");

               

                 

               

                Toast.makeText(this , "  ConSql 3  "    , Toast.LENGTH_LONG).show();

               

                System.out.println("connected");

                Statement statement=conn.createStatement();

                ResultSet resultSet=statement.executeQuery("select * from  userinfo ");

               

                Toast.makeText(this , " resultSet =  "    , Toast.LENGTH_LONG).show();

               

               

                while(resultSet.next())

                {

                    System.out.println(" "+resultSet.getString(1)+" "+resultSet.getString(2));

                   

                    Toast.makeText(this , resultSet.getString(1)+"   ,    "+resultSet.getString(2)    , Toast.LENGTH_LONG).show();

                   

                }

            } catch (Exception e) {

               

                Toast.makeText(this , " Erore ==  "+ e.getMessage().toString()    , Toast.LENGTH_LONG).show();

               

                TextView1.setText( e.getMessage().toString());

               

                e.printStackTrace();

               

               

            }

       

       

    }

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

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

تو قسمت بالا کد برنامه ام رو نوشتم لطفا کمکم کنید آیا برنامه ام مشکلی داره چرا error 

the driver could not establish a secure connection to sql server by using secure sockets layers ssl encryption error  ulable to make socket non blocking

برام میده

لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 2 هفته بعد...

من نمیدونم چرا هر کس تو این انجمن مشکلی داره می پرسه بعد جوابشو که گرفت خدا رو هم شکر میکنه ولی به بقیه جواب نمیده

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

زکات علم آموختن آن است نه دزدیدن آن

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

خوش به حالتون که تونستین حلش کنید

منم دقیقا کد شمارو می نویسم ولی همون خطا رو میده، البته بعدا من به manifest یه خط کد permission به دسترسی INTERNET اضافه کردم

الانم یه خطاهای دیگه ای میده

مثلا مشکل در ENcryption و ارتباط SSL!

جالب اینجاست که با eclipse از یه کامپیوتر remote میشه براحتی به sql server express 2008 رو یه کامپیوتر دیگه وصل شد. با ابزار Database Explorer خود eclipse

ولی وقتی کد می نویسم و داخل تبلت اندرویدی نصب مب کنم این درد سر ها بوجد میاد.

مشکل ارتباطات sql server , tcp/ip نداره

مشکل firewall نداره

driver ها همه نصب هستن

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

ممنون میشم.

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

من نمیدونم چرا هر کس تو این انجمن مشکلی داره می پرسه بعد جوابشو که گرفت خدا رو هم شکر میکنه ولی به بقیه جواب نمیده

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

زکات علم آموختن آن است نه دزدیدن آن

آقای محترم

اولا دست کسی رو که میخوای ازش لقمه بگیری رو نباید گاز بگیری ثانیا دزد خودتی آدم نفهم

آدم بیشور تورو چه به فناوری برو به گاو و گوسفندات برس

ثالثا اگه ادعات میشه اهل فناوری هستی خودت بشین بنویس

رابعا یک نمونه کامل و سالم آماده کرده بودم میخواستم بذارم همه استفاده کنند ولی آدمای بیشوری مثل تو واسه بقیه هم باعث میشن

واقعا متاسفم به این کوتاه بینیت

از ادمین محترم و سایر دوستان عزیزتر از جانم بخاطر حرفام واقعا معذرت می خوام


خوش به حالتون که تونستین حلش کنید

منم دقیقا کد شمارو می نویسم ولی همون خطا رو میده، البته بعدا من به manifest یه خط کد permission به دسترسی INTERNET اضافه کردم

الانم یه خطاهای دیگه ای میده

مثلا مشکل در ENcryption و ارتباط SSL!

جالب اینجاست که با eclipse از یه کامپیوتر remote میشه براحتی به sql server express 2008 رو یه کامپیوتر دیگه وصل شد. با ابزار Database Explorer خود eclipse

ولی وقتی کد می نویسم و داخل تبلت اندرویدی نصب مب کنم این درد سر ها بوجد میاد.

مشکل ارتباطات sql server , tcp/ip نداره

مشکل firewall نداره

driver ها همه نصب هستن

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

ممنون میشم.

حق دسترسی اینترنت زمانی کاربرد دارد که ارتباط شما تویط اینترنت باشد

که در اینصورت باید IP مودم ADSL رو وارد کنی منظورم 192.168.1.1 یا 192.168.2.1 نیست اینها IP لوکالی هستن بطور ساده IP اینترنت خودت که این شرایط خاصی لازم دارد باید از قبل تنظیمات خاصی رو مودمت اعمال بشه که از این میگذریم روش دیگه هم اینه که از طریق WIFI براحتی بدون هیچ تنظیمات خاصی با SQLServer وصل بشی که دراین حالت حق دسترسی های مخصوص WIFI رو باید به Mainfest بدی و حتما باید IP سیستمی که SQLServer نصب هستش رو با پورد بدی مثلا 192.168.1.2:1433

گرفتی موضوع رو ؟

تست بزن ببین حل میشه


تو قسمت بالا کد برنامه ام رو نوشتم لطفا کمکم کنید آیا برنامه ام مشکلی داره چرا error 

the driver could not establish a secure connection to sql server by using secure sockets layers ssl encryption error  ulable to make socket non blocking

برام میده

Driver خودت رو عوض کن

ببخش بخاطر بعضی آدمهای سودجو  نمیتونم کامل راهنمایت کنم

ببین پیدا میکنی نشد پیام خصوصی بیا

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

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

واما اون دو تا موضوع که شما فرموده بودید:

در مورد اینترنت فعلا تست نکردم، چون دارم تو یه شبکه محلی آزمایش می کنم

IP لپتاپ که sql server روش نصبه 10.114.8.172

و تبلت هم براحتی 10.114.8.171 میگیره

همونطور که گفتم تمام اتصالات و مشکلات پورت و فایروال و تنظیمات شبکه برای sql srver  درسته

ولی باز تبلت کانکت نمیشه!

اعصاب برام نذاشته

اگه درست نیست پس چرا خوده محیط eclipse  با همون درایورهای jdbc و اصلا همون connection string از یه کامپیوتر دیگه به این sql server  وصل میشه و دیتا رو نشون میده؟!

دیوونم کرده.

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

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

واما اون دو تا موضوع که شما فرموده بودید:

در مورد اینترنت فعلا تست نکردم، چون دارم تو یه شبکه محلی آزمایش می کنم

IP لپتاپ که sql server روش نصبه 10.114.8.172

و تبلت هم براحتی 10.114.8.171 میگیره

همونطور که گفتم تمام اتصالات و مشکلات پورت و فایروال و تنظیمات شبکه برای sql srver  درسته

ولی باز تبلت کانکت نمیشه!

اعصاب برام نذاشته

اگه درست نیست پس چرا خوده محیط eclipse  با همون درایورهای jdbc و اصلا همون connection string از یه کامپیوتر دیگه به این sql server  وصل میشه و دیتا رو نشون میده؟!

دیوونم کرده.

خطایی که در تبلت میده در Toast ی , TestView ی چیزی بگیر ببین چی میشه بهم بگو


راستی درایور خود رو عوض کن

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

با سلام

من آموزش های زیادی رو مطالعه کردم

یه چیزایی در مورد اتصال به sqllite و mysql بود، ولی من نیاز مبرم به اتصال به sql server دارم. از مجموعه مطالب ارسالی شما و اون چیزی که توی اینترنت بود این رو نوشتم:

public void onClick(View v)

            {

                //display.setText("Your total is " + btn1.getText());

            try

            { // Step 1: Load the JDBC driver. 

            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 

           

            // Step 2: Establish the connection to the database. 

            String url = "jdbc:sqlserver://192.168.2.35:1433;databaseName=DBTest";

            Connection conn = DriverManager.getConnection(url,"sa","123");

            display.setText("Successful");

           

            } 

            catch (Exception e) 

            {

            display.setText(e.getMessage()); 

           

            }

            }

تمام اجازه ها، دسترسی پورت، فایروال، تنظیمات Sql server و... انجام شده.

از داخل خود eclipse میشه براحتی با همین jdbc به 192.168.2.35 که یک لپ تاپ روی شبکه هست و sql 2008 روی اون هست، وصل شد!

اما بعد از کامپایل و اجرا روی تبلت این خطا رو میده:

The driver could not establish a secure connection to sql server by using secure socket layer (SSL) encryption. Error: "socket closed".

client connectio id:....

بد جوری گرفتارم. اگه یه سرنخی راه حلی بگید ممنون میشم...

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

با اینکه کسی اینجا جواب نمیده ولی ما میگیم شاید به درد کسی بخوره

من مشکل اتصال remote به sql server express 2008 رو حل کردم

اشکال کار اینجاست که JDBC4 انگار ذاتا قادر به برقراری ارتباط بصورت SSL نیست و باید از JDTS استفاده کنید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 2 هفته بعد...

راستش یه سوال برام پیش امد چرا باید به طور مستقیم به sql server وصل میشی؟ اگه لازم چرا یک سرویس rest  براش نمینویسی؟ اینجوری امکان سوء استفاده و اشتباهات غیر عمدی پیش نمی اید؟برام جالبه که منظور طراح از این طرحش چیه؟ همین

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

آره دیگه

حق با شماست. من تازه کارم تو اندروید

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

اگه وب یرویس بنویسم اونوقت باید سمت سرور IIS داشته باشم دیگه؟

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

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...