PDA

View Full Version : ارتباط اندروید با sql server



Reza Safa
یک شنبه 31 خرداد 1394, 11:45 صبح
سلام به همه

من می خواهم اطلاعاتی رو از طریق گوشی اندرویدی
از دیتابیس sql server بخونم و بنویسم


اما هر کاری می کنم به دیتابیس کانکت نمیشه

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

از این دو هم برای مجوز دسترسی استفاده کردم


<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>




package com.example.tmdb;




import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.net.SocketPermission;


public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

}


@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;
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}

public void ConnectToDatabase(){

TextView ts = (TextView) findViewById(R.id.textView1);
//Connection DbConn = null;
//Statement stmt ;
//ResultSet reset = null;

String dbName = "1391";
String serverip="169.254.87.225";
String serverport=":1483";
String url = "jdbc:jtds:sqlserver://"+serverip+serverport+"/"+dbName;



try {

// SET CONNECTIONSTRING
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
Connection DbConn = DriverManager.getConnection(url);
//Connection DbConn = DriverManager.getConnection("jdbc:jtds:sqlserver://192.168.1.3:1433/1391;integratedSecurity=true;");
//Connection DbConn = DriverManager.getConnection("jdbc:jtds:sqlserver://169.254.87.225:1433/1391");

Log.w("Connection","open");
//ts.setText("Reza SAFA");
DbConn.close();
} catch (Exception e)
{
Log.w("Error connection","" + e.getMessage());
ts.setText("اشکال");
//ts.setText(e.getMessage());
}



//Statement stmt = DbConn.createStatement();
//ResultSet reset = stmt.executeQuery(" select * from Accounts ");

//} catch (Exception e)
//{
//.w("Error connection","" + e.getMessage());
//ts.setText("خوندن");
//}
//try{
//EditText num = (EditText) findViewById(R.id.displaymessage);
//num.setText(reset.getString(1));
//ts.setText(reset.getString(1));

//DbConn.close();

//} catch (Exception e)
//{
//Log.w("Error connection","" + e.getMessage());
//ts.setText("بستن");
//}
}

public void OK_Click(View v)
{

//jdbc:jtds:sqlserver://server-name/database_name
ConnectToDatabase();


}
}

Reza Safa
یک شنبه 31 خرداد 1394, 11:48 صبح
هم از ip سیستم استفاده کردم
هم از ip خود اس کیو ال داده

در ضمن firewall هم خاموش کردم



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

hamid_hr
یک شنبه 31 خرداد 1394, 12:53 عصر
فک کنم باید یوزر و پسووردم بهش بدی برا کانکت شدن
DriverManager.getConnection(CStr,user,Pass);

Reza Safa
یک شنبه 31 خرداد 1394, 14:17 عصر
ممنون که پاسخ دادید
اما باید بگم که دیتابیس یوزر و پسورد نداره

smemamian
یک شنبه 31 خرداد 1394, 14:25 عصر
سلام
اتصال مستقیم به sql server کار چندان جالبی نیست چراکه از لحاظ امنیتی قابل قبول نیست.
بهتر از یک واسط استفاده کنید.

Reza Safa
یک شنبه 31 خرداد 1394, 15:19 عصر
میشه بیشتر راهنمایی کنی؟

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

یه نمونه کد بذارید ممنون میشم

hamid_hr
یک شنبه 31 خرداد 1394, 16:20 عصر
برا ارتباط از بیرون به دیتابیس sqlserver باید حتما یه user , password داشته باشین و یه سری تنظیمات که باید انجام بدین

_behnam_
یک شنبه 31 خرداد 1394, 21:02 عصر
با سلام.
همینطور که smemamian (http://barnamenevis.org/member.php?249007-smemamian) فرمودند اتصال مستقیم اندروید کار عاقلانه ای نیست. چرا که با یه اسنیف میتونن راحت اطلاعات دیتابیس رو بدست بیارن و دسترسی کامل به بانک داشته باشن.
شما میباید ا یه واست استفاده کنید. با توجه به اینکه SQLSERVER استفاده میکنید باید برنامه سمت سرور رو با .NET بنویسید که خروجی Json بده و از طریق انروید اطلاعات رو بخونید.

tux-world
یک شنبه 31 خرداد 1394, 21:45 عصر
بهتره یه واسط مثل وب سرویس درست کنید و اطلاعات رو به صورت جیسون بفرستید و بگیرید. اتصال به بانک اشتباه بزرگیه