“统一引用输入字段”文本框



完整的菜鸟在这里: 我正在尝试做的是一个简单的注册屏幕,其中文本输入字段可以保存到SQLite数据库中。 如您所见,其中大部分是预定义的字符串,因为我仍在对其进行测试。 我有一个应该插入值的脚本,它附加到一个按钮并在单击后调用 InsertScore 函数。 插入函数工作, 只是我现在需要将文本从输入字段存储到变量或直接在此处引用它:cmd.Parameters.Add(new SqliteParameter("@EmployeeID",

无论如何,为什么我不能在 C# 中引用 txtEmployeeID(我的输入字段的名称(? 或者更好的是,请告诉我如何引用 txtEmployeeID 输入字段。 这样我就可以获取字符串或其中的文本并将其保存到数据库中。

public void InsertScore()
{
connectionString = "URI=file:" + Application.dataPath + "/HighScoreDB.sqlite";
using (SqliteConnection con = new SqliteConnection(connectionString))
{

SqliteCommand cmd = new SqliteCommand();
cmd.CommandText = @"INSERT INTO HighScores(EmployeeID, EmployeeFirstname, TestScore, ROLE) VALUES (@EmployeeID,@EmployeeFirstName,@TestScore,@Role)";
cmd.Connection = con;
//cmd.Parameters.Add(new SqliteParameter("@EmployeeID", "222222"));
//cmd.Parameters.Add(new SqliteParameter("@EmployeeID", gameObject.GetComponent<input>
cmd.Parameters.Add(new SqliteParameter("@EmployeeFirstName", "Anand3"));
cmd.Parameters.Add(new SqliteParameter("@TestScore", "65"));
cmd.Parameters.Add(new SqliteParameter("@Role", "Tester"));
con.Open();
cmd.ExecuteNonQuery();
}
}

​

如何引用 txtEmployeeID 输入字段

使用GameObject.Find("txtEmployeeID")查找输入游戏对象,然后对返回的游戏对象执行GetComponent以获取InputField组件。

private InputField employerIdinputField;
void Start()
{
    employerIdinputField = GameObject.Find("txtEmployeeID").GetComponent<InputField>();
    string dataFromInput = employerIdinputField.text;
}

要将其合并到当前代码中,请执行以下操作:

private InputField employerIdinputField;
void Start()
{
    employerIdinputField = GameObject.Find("txtEmployeeID").GetComponent<InputField>();
}
public void InsertScore()
{
   connectionString = "URI=file:" + Application.dataPath + "/HighScoreDB.sqlite";
    using (SqliteConnection con = new SqliteConnection(connectionString))
    {
    SqliteCommand cmd = new SqliteCommand();
    cmd.CommandText = @"INSERT INTO HighScores(EmployeeID, EmployeeFirstname,    TestScore, ROLE) VALUES (@EmployeeID,@EmployeeFirstName,@TestScore,@Role)";
    cmd.Connection = con;
    //FIXED LINE!
    cmd.Parameters.Add(new  SqliteParameter("@EmployeeID",employerIdinputField.text));
    cmd.Parameters.Add(new SqliteParameter("@EmployeeFirstName", "Anand3"));
    cmd.Parameters.Add(new SqliteParameter("@TestScore", "65"));
    cmd.Parameters.Add(new SqliteParameter("@Role", "Tester"));
    con.Open();
    cmd.ExecuteNonQuery();
    }
}

对于InputField事件,请选中 3。输入字段组件在这里。

最新更新