0

プロジェクトにシナリオがあり、動的な行を生成するグリッドビューと送信ボタンがあり、Editそれらの行を編集する画像ボタンがあり、これらの行は最初にデータテーブルにバインドされ、保存ボタンをクリックすると、データテーブルの保存に変更が反映されますデータベースにはUpdateボタンがありません

質問:

以前に編集した行をとに保存するにはどうすればよいDataTableですか?

Plzはその緊急を助けます

4

2 に答える 2

0

CommandName と CommandArgument を linkBut​​ton に配置し、保存コードを ItemCommand() に配置して、その GridView が機能するようにします。ああ、コマンド名は「Update」のようなものにする必要があり、引数はその行の ID にすることができます。

于 2012-04-18T08:26:10.650 に答える
0

データテーブルを宣言し、列を追加して、グリッドからDBのテーブルに保存するすべてのデータを表します。グリッド内の行をループし、保存する各セルからデータを取得して、データテーブルの各列に追加します。データテーブルを使用して、DB のテーブルに一括挿入します。

    DataTable dtMealTemplate = new DataTable();
    dtMealTemplate.Columns.Add("MealTemplateID", Type.GetType("System.Int32"));
    dtMealTemplate.Columns.Add("WeekNumber", Type.GetType("System.Int32"));
    dtMealTemplate.Columns.Add("DayOfWeek", Type.GetType("System.String"));
    foreach (GridView.Rows の GridViewRow gvr)
    {
     drMT = dtMealTemplate.NewRow();
     drMT["MealTemplateID"] = gvr.Cells[0].text;
     drMT["週番号"] = gvr.Cells[1].text;
     drMT["DayOfWeek"] = gvr.Cells[2].Text;
     dtMealTemplate.Rows.Add(drMT);
    }

     public void InsertMealsTemplate(int iMealTemplateID, DataTable dtMealsData)
     {
    SqlCommand cmd = new SqlCommand();
    SqlDataAdapter sa = 新しい SqlDataAdapter(cmd);
    SqlCommandBuilder cmb = new SqlCommandBuilder(sa);
    SqlTransaction oTrans;
    SqlConnection oConn = 新しい SqlConnection(GetConnectionString());
    DataSet ds = 新しい DataSet();
    oConn.Open();
    cmd = oConn.CreateCommand();
    oTrans = oConn.BeginTransaction();
    cmd.Connection = oConn;
    cmd.Transaction = oTrans;
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = "SELECT * FROM YOURTABLENAME WHERE 1 = 1";
    sa = 新しい SqlDataAdapter(cmd);
    cmb = 新しい SqlCommandBuilder(sa);
    sa.MissingSchemaAction = MissingSchemaAction.AddWithKey;
    cmd.Transaction = oTrans;
    sa.Fill(ds, "テーブル名");
    DataRow drNew;
    整数 x = 0;
    foreach (dtMealsData.Rows の DataRow dr)
    {
    if (Int32.Parse(dr["食事の詳細ID"].ToString()) == 0)
       {
        drNew = ds.Tables[0].NewRow();
        drNew["食事テンプレートID"] = dr["食事テンプレートID"];
        drNew["週番号"] = dr["週番号"];
        drNew["曜日"] = dr["曜日"];
        ds.Tables[0].Rows.Add(drNew);
        }
    }
    sa.Update(ds.Tables["yourtablename"]);
    oTrans.Commit();
    oConn.Close();
    }

于 2012-04-18T08:38:50.493 に答える