0

間違いなく単純な質問がありますが、その答えがどこにも見つからないようです。私は、dataadapter を使用してデータベースに対して SQL UPDATE ステートメントを実行するために使用している datagridview を含む C# Windows フォーム アプリケーションを作成しています。パラメータ化されたクエリを使用しており、datagridview からの列をパラメータに入力する必要がありますが、列自体を表すためにどの構文を使用すればよいかわかりません。次のようなものを使用できると思いました:

da.UpdateCommand.Parameters.Add("@CustomerID", SqlDbType.VarChar, 4).Value = RuleTable.Columns["CustomerID"].ToString();

しかし、それは正しいレコードを更新していませんが、これらのフィールドのすべてに「データ」という単語が入力されているようです。これはおおよそ私が疑似コードで持っているものです:

using (SqlDataAdapter ruleTableDA = new SqlDataAdapter("SELECT CustomerID, etc ...", con))
{
    ruleTableDA.UpdateCommand = new SqlCommand("UPDATE CustomerTable SET " +  
    "CustomerTable.CustomerID = @CustomerID. etc ... WHERE CustomerTable.MachineID = @MachineID", con);  
    if (BobstPresses.SelectedIndex >= 0)
    {
        ruleTableDA.UpdateCommand.Parameters.Add("@CustomerID",  
            SqlDbType.VarChar, 4).Value = RuleTable.Columns["CustomerID"];
        DataTable dt = new DataTable();
        dt = RuleTable.DataSource as DataTable;
        ruleTableDA.Update(dt);
    }
}
4

1 に答える 1

1

私が正しく理解しているかどうかはわかりませんが、次のようなものを使用したいと思います。
RuleTable.Rows[index].Cells["CustomerID"].Value

ここで、indexはDataGridView、クエリで使用するデータを含む行のインデックスです。

于 2010-04-09T14:55:29.243 に答える