0

我需要做的基本上是获取用户名(已经存储为变量)和他们的分数(这也是一个变量),并在他们按下“提交”时将其存储在我的数据库中。这是我点击按钮的代码。

private void btnSubmitScore_Click(object sender, EventArgs e)
{
    string connStr = "server=server; " +
                     "database=databasename; " +
                     "uid=username; " +
                     "pwd=password;";
    MySqlConnection myConn = new MySqlConnection(connStr);
}

显然我已经更改了login细节等。我环顾四周,只设法找到关于如何以表格形式显示数据库中的数据的令人困惑的代码(我稍后会这样做),但现在,我需要知道如何添加sNameiTotalScore进入数据库。(字段被调用'Name''Score'在 DB 中)

4

2 回答 2

0

您将使用SqlConnection,SqlCommand及其属性的组合。连接本质上是您的代码的东西。该命令是文字 SQL 语句,或对存储过程的调用。

一个常见的 C# 习惯用法是围绕第一行编写代码,如下所示:

using (SqlConnection myConnection = new SqlConnection()) {
    string doThis = "select this, that from someTable where this is not null";
    SqlCommand myCommand = new SqlCommand(dothis, myConnection);

    try {
       myCommand.Connection.Open();
       myReader = myCommand.ExecuteReader(); //pretend "myReader" was declared earlier

    } catch (Exception myEx) {
         // left to your imagination, and googling.
    }
    finally {
        myCommand.Connection.Close();
    }
}

// do something with the results. Your's to google and figure out

总纲是

  1. 使用连接
  2. 实例化和配置一个 SqlCommand
  3. 如图所示使用 try/catch。
  4. “使用”块在我们完成后可以在幕后清理/处置我们不再需要的所有对象;特别是 SqlConnection 对象。

您必须了解有关这些 Sqlxxxxx 类的更多信息,有很多方法可以配置它们以执行您想要的操作。

于 2013-03-13T22:51:04.770 回答
0

我不熟悉 MySql 连接器,但代码应该类似于:

private void Insert()
{
    string connStr = "server=server; " +
                 "database=databasename; " +
                 "uid=username; " +
                 "pwd=password;";

    string query = "INSERT INTO TableName('Name','Score) VALUES (@name, @score);";

    using(MySqlConnection connection = new MySqlConnection(connStr))
    {
        MySqlCommand insertCommand = new MySqlCommand(connection,command);
        insertCommand.Paramaters.AddWithValue("@name",sName);
        insertCommand.Paramaters.AddWithValue("@score",iTotalScore);
        connection.Open();
        command.ExecuteNonQuery();
        connection.Close();
   }
}
于 2013-03-13T22:34:52.940 回答