2

次のコードを使用して、TextBox 値をデータベースに保存します。ただし、値を挿入すると、新しい行に保存されます。どうすれば同じ行に保存できますか?

private void button1_Click(object sender, EventArgs e)
{
    string pass = textBox1.Text;
    sql = new SqlConnection(@"Data Source=PC-PC\PC;Initial Catalog=P3;Integrated Security=True");
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = sql;
    cmd.CommandText = ("Insert [MyTable] ([MyColumn]) Values (@pass)");
    cmd.Parameters.AddWithValue("@pass", pass);
    sql.Open();
    cmd.ExecuteNonQuery();
    sql.Close();
}
4

2 に答える 2

4

挿入の代わりに更新コマンドを使用します。

cmd.CommandText = "update YourTable set FieldName = YourValue where KeyField = YourKeyValue"
于 2012-05-01T20:23:15.050 に答える
2

次のように、INSERT の代わりに UPDATE を使用する必要があります。

UPDATE yourTable
SET yourColumn = newValue
WHERE (your criteria needs to go here) ID = recordId

レコードの UPDATE ステートメントを作成する必要があります。あなたの意図がすべてを更新することである場合、ステートメントは次のようになります。

UPDATE yourTable
SET yourColumn = newValue

それ以外の場合は、UPDATE するレコードを指定する必要があります。

UPDATE yourTable
SET yourColumn = newValue
WHERE ID = yourID

private void button1_Click(object sender, EventArgs e)
{
    string pass = textBox1.Text;
    sql = new SqlConnection(@"Data Source=PC-PC\PC;Initial Catalog=P3;Integrated Security=True");
    SqlCommand cmd = new SqlCommand();
    cmd.Connection = sql;
    cmd.CommandText = "UPDATE MyTable SET MyColumn = @pass WHERE id=@id"
    cmd.Parameters.AddWithValue("@pass", pass);
    cmd.Parameters.AddWithValue("@id", 1);
    sql.Open();
    cmd.ExecuteNonQuery();
    sql.Close();
}

以下は、ADO.NET を使用して説明しているいくつかのサンプルを含む Web サイトです。

C# を使用した単純な ADO.NET データベースの読み取り、挿入、更新、および削除

アドネットでのUPDATEの使い方

于 2012-05-01T20:36:59.913 に答える