آموزش اتصال به SQL Server در اندروید
سلام دوستان عزیز در این سری از آموزش برنامه نویسی اندروید به آموزش اتصال به SQL Server در اندروید می پردازیم متصل کردن برنامه اندروید در برنامه نویسی اندروید به دیتابیس SQL Server شاید در ابتدا کار سختی به نظر برسد ولی در واقع این کار بسیار ساده خواهد بود در ادامه با ما همراه باشید تا آموزش اتصال به SQL Server در اندروید را یاد گیرید.
در کل دوراه وجود دارد که به SQL Server متصل شد
راه حل اول
راه اول این است که یک وب سرویس یا همان API یا REST ایجاد کنیم که این کار سمت سرور با استفاده از php یا asp.net یا node.js پیاده سازی شده و یک response از سرور به سمت اپلیکیشن بر خواهد گشت پس در این راه فقط ما به صورت مستقیم به Sql Server متصل نشده ایم بلکه با استفاده از یک وب سرویس عمل CRUD یا همان درج حذف آپدیت و خواندن باشد را انجام میدهد و فقط یک نتیجه به سمت گوشی ارسال شده و نمایش داده می شود.
راه حل دوم
اتصال به صورت مستقیم به SQL Server که این عمل با استفاده از Connection String انجام می شود و اندروید (جاوا) عملیات را به سمت سرور ارسال کرده و handle می کند.
در ابتدای کار باید یک کتابخانه را به پروژه خود اضافه کنید برای اینکار فایل زیر را دانلود کنید.
لینک دانلود کتابخانه jtds
یک کلاس به نام ConnectionClass.java ایجاد کرده و کدهای زیر را در آن قرار دهید (این همان Connection String ما خواهد بود)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | public class ConnectionClass { String ip = "your_IP"; String class = "net.sourceforge.jtds.jdbc.Driver"; String db = "DB_name"; String un = "UserName"; String password = "SQLpassword"; @SuppressLint("NewApi") public Connection CONN() { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); Connection conn = null; String ConnURL = null; try { Class.forName(class); ConnURL = "jdbc:jtds:sqlserver://" + ip + ";" + "databaseName=" + db + ";user=" + un + ";password=" + password + ";"; conn = DriverManager.getConnection(ConnURL); } catch (SQLException se) { Log.e("ERROR", se.getMessage()); } catch (ClassNotFoundException e) { Log.e("ERROR", e.getMessage()); } catch (Exception e) { Log.e("ERROR", e.getMessage()); } return conn; } } |
در کدهای بالا نیازی نیست تغییراتی ایجاد کنید فقط کافی است آن را قرار دهید.
در بالا یکسری از اطلاعات رو باید ویرایش کنید.
در بخش ip آیپی سرور خود را قرار دهید.
db : نام دیتابیش شما می شود.
un : کاربر دیتابیس شما می شود.
password : رمز دیتابیس شما می شود.
به بقیه چیزها دست نزنید خیلی حساس است.
در نهایت با استفاده از کد زیر یک Connection ساخته و عملیات رو انجام دهید.
1 2 3 4 5 6 7 8 9 10 11 12 | connectionClass = new ConnectionClass(); try { Connection con = connectionClass.CONN(); String query = "INSERT INTO TableName(ColumnName) VALUES ('" + text + "') " ; Statement stmt = con.createStatement(); stmt.executeUpdate(query); } catch (SQLException se) { Log.e("ERROR", se.getMessage()); } |
در بالا باید همان Query هایی که در سمت Sql می نوشتید را در این بخش نیز پیاده سازی کنید هیچ تفاوتی نمی کند از نظر syntax که رشته است ولی باید همانند SQL Server نوشته شود تا به درستی کار کند.
وارد فایل AndroidManifest.xml شده و دسترسی زیر را قرار دهید.
1 | <uses-permission android:name="android.permission.INTERNET" /> |
این آموزش هم به پایان رسید.
موفق و پیروز باشید.
سلام اگر ممکنه در مورد کاربرد این روش یکم بیشتر توضیح بدهید که کجا کاربر دارد؟
باتشکر
سلام و درود
کاربرد این روش زمانی است که سمت دیتابیس شما SQL Server باشد نه دیتابیس دیگر آن زمان لازم است که با استفاده از کد بالا به دیتابیس SQL Server متصل شوید.
جالبه من ی برنامه رو کار کردم که دیتابیس ش sqlserver بود که مجبور شدم برای اتصالش از سرویس ها استفاده بکنم این هم ی روشی جالبیه که حتما تست می کنم
سلام
معمولا rest می نویسنن برای همچین سرویس هایی ولی راهایی که قرار دادیم فوق العاده ساده است.
سلام مهندس
من از کد بالا استفاده و اطلاعات دیتابیس خودم را وارد کردم
ولی با اررور مواجه میشم
ممنون میشم راهنمایی فرمایید
E/ERROR: The USE database statement failed because the database collation Persian_100_CS_AI_KS_WS is not recognized by older client drivers. Try upgrading the client operating system or applying a service update to the database client software, or use a different collation. See SQL Server Books Online for more information on changing collations.
سلام من بادc# wpf برنامه نوشتم با پایگاه داده sql server می خواهم ممنون می شوم نحوه اتصال با سرویس ها در sql server را بگی
سلام
ببخشید میشه توضیح بدید IP خودمون رو چطور باید بدست بیاوریم؟
آموزشی ، چیزی
تشکر
با سلام
یک سوال داشتم از خدمتتون
توی زامارین چطوری باید jtds رو ادد کنیم؟؟؟؟؟؟
اصلا چطور باید ConnectionClass.java که فایل جاوا است رو توی زامارین ایجاد کنیم؟
سلام راه ارتباطیتون چیه ؟ بنده چندتا سوال دارم ازتون
Caused by: java.lang.NullPointerException: Attempt to invoke interface method ‘java.sql.Statement java.sql.Connection.createStatement()’ on a null object reference
این ارور برای چیه ممنون میشم جواب بدین خیلی کارم گیره
خوب بود ممنونم . دستورات دیگر sql server را چگونه می توان استفاده کرد
سلام و عرض ادب
کد بالا در کاتلین هم کاریرد داره
سلام و درود
بهتره با api وصل بشید.