2017-12-05 11 views
-1

ここでの問題は本当にわかりません。入力からデータを取得しようとすると、フィールド。 助けてください..Unity sqlite C#オブジェクト参照がオブジェクトのインスタンスに設定されておらず、データベースがロックされている

public InputField username; 
public InputField password; 
public Button register; 
SqliteConnection dbconn; 
// Use this for initialization 
void Start() { 
    username = gameObject.GetComponent<InputField>(); 
    password = gameObject.GetComponent<InputField>(); 
    register = gameObject.GetComponent<Button>(); 
    string conn = "URI=file:" + Application.dataPath + "/thesisdatabase.db"; 
    dbconn = new SqliteConnection (conn); 
    dbconn.Open(); 

    SqliteCommand cmd = new SqliteCommand(); 


    InputField.SubmitEvent usernameValue = new InputField.SubmitEvent(); 
    InputField.SubmitEvent passwordValue = new InputField.SubmitEvent(); 
    username.onEndEdit = usernameValue; 
    password.onEndEdit = passwordValue; 
    Debug.Log (usernameValue); 
    //  string usernameValue = "we"; 
    //  string passwordValue = "wwwe"; 
    string sqlInsert = "INSERT INTO user (username, password) VALUES ('" +usernameValue+ "' , '"+passwordValue+"')"; 
    cmd.CommandText = sqlInsert; 
    cmd.Connection = dbconn; 
    cmd.ExecuteNonQuery(); 
    //   register.onClick.AddListener (registerMe); 

    cmd.Dispose(); 
    cmd = null; 
    dbconn.Close(); 
    dbconn = null; 



} 

答えて

0

あなたがユニティのUI APIを使用していくつかの困難を持っているようです。しかし、私はMySQLの専門家ではありませんが、あなたは次のコードを試してみてください:

// Drag & Drop the gameobject with the InputField component 
public InputField username; 

// Drag & Drop the gameobject with the InputField component 
public InputField password; 

// Drag & Drop the gameobject with the Button component 
public Button register; 

SqliteConnection dbconn; 

// Use this for initialization 
void Start() 
{ 
    OpenDatabaseConnection(); 
    register.onClick.AddListener (OnRegisterButtonClicked); 
} 
void OnDestroy() 
{ 
    CloseDatabaseConnection(); 
} 

private void OnRegisterButtonClicked() 
{ 
    // Make sure the username and password are not empty 
    if(!string.IsNullOrEmpty(username.text) && !string.IsNullOrEmpty(password.text)) 
    { 
     InsertUser(username.text, password.text); 
    } 
    else 
    { 
     Debug.LogError("Username or password is missing"); 
    } 
} 

private void InsertUser(string username, string password) 
{ 
    SqliteCommand cmd = new SqliteCommand(); 
    string sqlInsert = "INSERT INTO user (username, password) VALUES ('" +username+ "' , '"+password+"')"; 
    cmd.CommandText = sqlInsert; 
    cmd.Connection = dbconn; 
    cmd.ExecuteNonQuery(); 
    cmd.Dispose(); 
    cmd = null; 
} 

private void OpenDatabaseConnection() 
{ 
    string conn = "URI=file:" + Application.dataPath + "/thesisdatabase.db"; 
    dbconn = new SqliteConnection (conn); 
    dbconn.Open(); 
} 

private void CloseDatabaseConnection() 
{ 
    dbconn.Close(); 
    dbconn = null; 
} 
+0

おかげで感謝します。私はこれを試してみます。 –

+0

@JielNiñoGaid:あなたの問題を解決できましたか?私の解決策が十分に明確でないか、問題がある場合は、躊躇しないでください。 – Hellium

+0

私は先生でしたが、別の問題がありました。これはユニティエディタでのみ動作しますが、アンドロイドにデプロイするとデータを追加できません。 –

関連する問題