2017-11-21 1 views
0
using System; 
using Xamarin.Forms; 
using UIKit; 
using MySql.Data.MySqlClient; 

namespace test.project 
{ 
    public partial class ViewController : UIViewController 
    { 

     partial void UIButton197_TouchUpInside(UIButton sender) 
     { 
      if (textBoxName.Text == "" || textBoxpasswd.Text == "") 
      { 
       var alert = UIAlertController.Create("Fehler", "Bitte geben sie Benutzername und Password ein", UIAlertControllerStyle.Alert); 
       alert.AddAction(UIAlertAction.Create("Ok", UIAlertActionStyle.Default, null)); 
       PresentViewController(alert, true, null); 
       // Fehlerüberprüfung wenn leer ist 

      } 
      else 
      { 
       try 
       { 
        MySqlConnection con = new MySqlConnection("Server=localhost;Port=8889;database=app;User Id=root;Password=;charset=utf8"); 

        if (con.State == System.Data.ConnectionState.Closed) 
        { 
         con.Open(); 
         MySqlCommand cmd = new MySqlCommand("INSERT INTO users(id, username, passwd, rank) VALUES(@user, @pass, @rank)", con); 
         cmd.Parameters.AddWithValue("@user", textBoxName.Text); 
         cmd.Parameters.AddWithValue("@pass", textBoxpasswd.Text); 
         cmd.Parameters.AddWithValue("@rank", 0); 

         cmd.ExecuteNonQuery(); 
         errorLabel.Text = "ausgeführt"; 
        } 
        else 
        { 
         errorLabel.Text = "no connection"; 
        } 
       } 
       catch 
       { 
        errorLabel.Text = "catch"; 
       } 
      } 
     } 

     protected ViewController(IntPtr handle) : base(handle) 
     { 
      // Note: this .ctor should not contain any initialization logic. 
     } 

     public override void ViewDidLoad() 
     { 
      base.ViewDidLoad(); 
      // Perform any additional setup after loading the view, typically from a nib. 
     } 

     public override void DidReceiveMemoryWarning() 
     { 
      base.DidReceiveMemoryWarning(); 
      // Release any cached data, images, etc that aren't in use. 
     } 
    } 
} 

시도합니다. 데이터베이스에 연결하지만 줄을 알아 내면 프로그램이 충돌 함.데이터베이스에 연결하려면 충돌이 발생합니까?

답변

1

분명히 데이터베이스에 연결하는 데 문제가 있습니다. 당신은 같은 서버 정의

: Server=localhost

이 절대적으로 정확합니까? 나는 당신이 장치 자체에서 완전한 MySQL 서버를 운영하고 있는지 의심 스럽다. 장치에서 서버를 실행중인 경우 서버 프로세스가 실행 중입니까?

응용 프로그램이 닫히는 실행은 무엇입니까?

CONNECTION_TIMEOUT? 방화벽 문제 일 가능성이 있음
CONNECTION_REFUSED? MySQL 서버 프로세스가 실행되고 있지 않습니다.

try { 

    connection.open(); 

} catch (Exception e) { 

    // TODO handle the connection error properly 
    System.err.println("An error has occurred."); 
    e.printStackTrace(); 
} 
:

또한 응용 프로그램을 설계해야

어쩌면 시도와의 연결을 포장, 데이터베이스 오류에 대해 강화한다

관련 문제