0

アクセステーブルを使用しています

これらのパブリック関数を含むこの oleDBManager を使用しています。

/// <summary>
/// Excecutes an SELECT query and returns the data.
/// </summary>
/// <param name="query">the query string</param>
/// <returns>returns an DataTable instance with the recived data from the selection query.</returns>
public DataTable ExcecuteRead(string query) {
    this.link.Open();
    // ---
    this.dataAdapter = new OleDbDataAdapter(query, this.link);
    // ---
    this.dataTable = new DataTable();
    this.dataAdapter.Fill(this.dataTable);
    // ---
    this.link.Close();
    // ---
    return this.dataTable;
}

/// <summary>
/// Returns an HTML table code, with all the rows and the values of the results.
/// </summary>
/// <param name="query">the query string</param>
/// <returns>returns an HTML code as a string</returns>
public string ExcecuteTableRead(string query)
{
    string output = "<table border=\"1\">";
    // ---
    this.dataTable = this.ExcecuteRead(query);
    // ---
    foreach (DataRow row in this.dataTable.Rows)
    {
        output += "<tr>";
        // ---
        foreach (object obj in row.ItemArray)
        {
            output += "<td>" + obj.ToString() + "</td>";
        }
        // ---
        output += "</tr>";
    }
    // ---
    output += "</table>";
    // ---
    return output;
}
/// <summary>
/// Returns an HTML table code, with all the rows and the values of the results.
/// </summary>
/// <param name="query">the query string</param>
/// <param name="max">the maximum number of rows to show</param>
/// <returns>returns an HTML code as a string</returns>
public string ExcecuteTableRead(string query, int max)
{
    int i = 0;
    string output = "<table border=\"1\">";
    // ---
    this.dataTable = this.ExcecuteRead(query);
    // ---
    foreach (DataRow row in this.dataTable.Rows)
    {
        if (i < max)
        {
            output += "<tr>";
            // ---
            foreach (object obj in row.ItemArray)
            {
                output += "<td>" + obj.ToString() + "</td>";
            }
            // ---
            output += "</tr>";
        }
        i++;
    }
    // ---
    output += "</table>";
    // ---
    return output;
}

「users」テーブルには、各ユーザーの「userid」、「username」、「password」、および「logins」があります。私の質問は、ユーザーがログインするとき (ユーザー名とパスワードを持っています)、どうすれば彼の「ログイン」列の値を取得できますか? intに設定できればさらに良いでしょう(問題がある場合は、「text」から「number」へのアクセスで「logins」列を設定しました。

編集:私がやろうとしているのは、ユーザーがログインした回数を更新することです。より良い方法があれば教えてください。

4

2 に答える 2

0

答え:

だから、誰も私に答えませんでしたが、私はそれを自分で学ぶことができました:

これがコードの全体です(usernameはユーザーの名前であり、同じ名前の文字列、loginsは列、usersはテーブルです)

string logins = db.ExcecuteTableRead("SELECT logins FROM users WHERE username='" + username + "'");
logins = logins.Substring(21, 20);
logins = Regex.Match(logins, @"\d+").Value;
int loginsInt = Int32.Parse(logins) + 1;
int a = db.ExecuteQuery("UPDATE users SET logins='" + loginsInt.ToString() + "' WHERE username='" + username + "'");
于 2012-12-10T13:20:51.430 に答える
0

オブジェクトを返す ExecuteScalar() 関数を 使用するか、 ExecuteRead () を使用
して、このような文字列に格納することができます

string logins= dt.rows[0].itemarray[0].tostring()
于 2012-12-08T18:57:23.220 に答える