Android Tutorial Connect Android to MS SQL Server Tutorial

Discussion in 'Tutorials & Examples' started by Erel, Dec 11, 2011.

Thread Status:
Not open for further replies.
  1. hdtvirl

    hdtvirl Active Member Licensed User

    JohnCody use one of the many c# to vb-net converters that are out there on the net, this will only give you the jist of what going on, you will have a little work yourself on the vb side of things to get it working. The are examples of using JSON within vb.net webservices also. Stackoverflow is a good place to start.

    Regards

    BOB
     
  2. McJaegs

    McJaegs Member Licensed User

    So when I try to connect to my database I get the error

    "System.Data.SqlClient.SqlException: Cannot open database "databasename" requested by the login. The login failed."

    I am using the exact same login credentials that I use to log into the server and access that database.

    Does anyone know what my issue is?
     
  3. Erel

    Erel Administrator Staff Member Licensed User

    I guess that your database name is not: databasename.
     
  4. McJaegs

    McJaegs Member Licensed User

    No its not, I just changed it here. The error actually says the name of my database.
     
  5. Erel

    Erel Administrator Staff Member Licensed User

    Try to run the ASP page from the browser. You can pass the query by adding ?query="select ...".
    You should see the same error message. However it will be easier to debug the issue.
     
  6. McJaegs

    McJaegs Member Licensed User

    Yes, that is where I am seeing the error from. I haven't even tried to get it to run through the app I am making yet. I am first trying to see if it will even access the database through the browser.
     
  7. PCBorges

    PCBorges New Member

    Building your sample Android app.

    I am trying to simulate your app.
    When I create a new Android project I am presented with the following activity code:

    package basic.fourPCC.project;

    import android.app.Activity;
    import android.os.Bundle;

    public class Basic4pcc_DBProjectActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    }

    }

    Can you please inform where do I insert your code provided on "Now for Basic4android program:" ?

    The server JSON side is already working as required.

    Thanks
    Paulo Borges
     
  8. Erel

    Erel Administrator Staff Member Licensed User

    This forum is for programs written in Basic4android not Java.
     
  9. oduvaldoOliveira

    oduvaldoOliveira New Member Licensed User

    Multiple calls to the WebService

    How to run multiple calls to the WebService using routines Http and Http Utils Utils Service, being my MSSQL Database? Using the examples of the topic "Android Connect to MS SQL Server Tutorial".

    Sorry my English, I am Brazilian and my English is pretty weak ...
     
  10. Erel

    Erel Administrator Staff Member Licensed User

    HttpUtils can handle a single job at a time. Each job can include any number of requests (URLs).
     
  11. arp

    arp Member Licensed User

    Empty Query

    I'm trying to get this working - I have problem similar to some already mentioned, but cannot work out the answer.

    B4A code snippet..

    Sub Process_Globals
    Dim ServerUrl As String
    ServerUrl = "http://192.168.0.15/b4aserver/sqlserver.aspx"
    End Sub

    Sub Activity_Create(FirstTime As Boolean)
    If FirstTime Then
    HttpUtils.CallbackActivity = "Main"
    HttpUtils.CallbackJobDoneSub = "JobDone"
    End If

    HttpUtils.PostString("Job1", ServerUrl, "select * from vSalesCustomers")
    End Sub

    Log output...

    ** Activity (main) Resume **
    ** Service (httputilsservice) Create **
    ** Service (httputilsservice) Start **
    Error. Url=http://192.168.0.15/b4aserver/sqlserver.aspx Message=Internal Server Error
    Error occurred. Query=
    System.InvalidOperationException: ExecuteReader: CommandText property has not been initialized

    at System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean async)

    at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)

    at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)

    at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)

    at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior)

    at ASP.b4aserver_sqlserver_aspx.Page_Load(Object sender, EventArgs ec) in c:\inetpub\wwwroot\B4AServer\sqlserver.aspx:line 26
    finished Job1
    ** Service (httputilsservice) Destroy **


    From what I can gather, the InputStream for the ASPX request is empty.

    Any assistance would be greatly appreciated, thanks.
     
  12. arp

    arp Member Licensed User

    Should mention that it works through the browser.
     
  13. Erel

    Erel Administrator Staff Member Licensed User

    Try passing the query as a GET parameter:
    Code:
    HttpUtils.PostString("Job1", ServerUrl & "?query=select * from vSalesCustomers""")
     
  14. arp

    arp Member Licensed User

    Thanks Erel,

    Unfortunately that didn't fix the problem. With spaces in the select statement the program errors with "java.lang.IllegalArgumentException: Illegal character in query at index 57: http://192.168.0.15/b4aserver/sqlserver.aspx?query=select * from vSalesCustomers order by name".

    So I replaced the spaces with %20, which allows the code to run to completion, however, the result of HttpUtils.IsSuccess is false.

    Ah, OK, need to change the URL parameter in the JobDone code to match the full URL passed in the Post call.

    Making progress again, thanks Erel.
     
  15. Gearcam

    Gearcam Active Member Licensed User

    Will Android ever be able to connect direct to MS SQL ?

    I want a direct way to connect to a MS SQL databse stored on a remote site hosted by "discountasp.net"
    Is theire any way to connect to this ?

    Currenley i have some win 6 phones that can connect to it with a program written in VS2008

    I want to move this over to Android !!!!

    Steve
     
  16. Gearcam

    Gearcam Active Member Licensed User

    ok going to use this method

    I am going to test this method

    I dont have many issues with the basic4android stuf

    But i do with the ASP.NET script i have no idea how to make this run is it compiled in visual studio as described here

    Creating a Windows Phone 7 Application Consuming Data Using a WCF Service

    i know its win mob 7 stuff but the services look the sameish

    Is there an example or a download of Erels script ?

    Thanks
     
  17. Erel

    Erel Administrator Staff Member Licensed User

  18. askez

    askez Member Licensed User

    what is the 'rows = parser.NextArray' problem solution?
    my web service is running OK (i get a good printput using http)
    and it's not firewall (the device give the same)

    anyone?
     
  19. Erel

    Erel Administrator Staff Member Licensed User

    Check the logs and see the response you get from the server.
     
  20. Gearcam

    Gearcam Active Member Licensed User

    Compilation Error

    Erel

    I have made the aspx file and uploaded it to my website
    Changed the login info for the database
    Added the BiN folder and System.Web.Extensions.dll it took a couple of different ones to make it run

    what about Initial Catalog ????


    When i try to run it from a webpage i get


    Error occurred. Query=
    System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
    at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
    at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
    at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject)
    at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
    at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
    at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
    at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
    at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
    at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
    at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
    at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
    at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
    at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
    at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
    at System.Data.SqlClient.SqlConnection.Open()
    at ASP.test_aspx.Page_Load(Object sender, EventArgs ec) in xxxxxxxxxxxxxxxxx




    Thanks
     
    Last edited: Jul 1, 2012
    Md A Jalil likes this.
Thread Status:
Not open for further replies.
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice