【问题标题】:Connecting and inserting data from an Android App to a pre-existing MS SQL database将数据从 Android 应用程序连接并插入到预先存在的 MS SQL 数据库
【发布时间】:2017-01-04 12:09:54
【问题描述】:

我创建了一个 Android 应用程序,它从用户那里获取数据。我需要将收集的数据(字符串)发布到 MS SQL 数据库。

我查看了各种资源,但没有多大帮助。我有 IP、用户名、密码以及需要插入上述数据的表和行。当用户按下他/她正在填写的表单页面上的提交按钮时,我需要插入数据。

如果这适用于 MS SQL 数据库,那就太好了,因为这是 Web 应用程序的移动版本。我尝试使用 jDTS 1.3.1,但是当我将它添加到 testCompile 下方时,它不会与 gradle(module:app) 同步。

【问题讨论】:

    标签: java android sql-server jtds


    【解决方案1】:

    就我而言,我已将数据从 Android 插入到 MSSQL。问题是,您只需在连接中添加插入查询。为了更好的方便,我附上了我的编码如下。

    最初给 Jtds 连接。

    创建一个名为 ConnectionClass 的类,

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

    用于插入 MSSQL,

     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());
            }
    

    注意:我用过stmt.executeUpdate(query),如果不行,你也可以用stmt.executeQuery(query)

    在这里,text 表示我自己的值,但您可以使用 editText 之类的任何内容。

    希望,它有帮助......!!

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 我认为这不适合我的情况,有我可以阅读的文档链接吗?
      猜你喜欢
      • 2017-06-10
      • 1970-01-01
      • 2013-06-01
      • 2012-04-23
      • 1970-01-01
      • 1970-01-01
      • 2018-05-16
      • 2015-08-08
      • 1970-01-01
      相关资源
      最近更新 更多