グリッドビューからSQLデータベースに複数の行を保存しようとしています。gridviewは手動でコードに組み込まれているため、データバインドされていません...これは、見積もりに追加する必要のあるパーツのグリッドであるためです...わかりました。保存パーツを作成しました。これは、唯一のことです。つまり、その行からデータを取得するためにforeachを設定する必要がありますが(これは私が行いました)、変数は常に設定され、最後の行のデータのみを取得します...誰か助けてくれませんか?これは私がやったことです:
conn = new SqlConnection(GetConnectionString());
string sql = "INSERT INTO CC_ItemsRequested (Item,Quantity, Price, ModelID, DateCreatedOn ) VALUES (@Item, @Quantity, @Price, @ModelID, @DateCreatedOn)";
try
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
int row = GridView1.Rows.Count;
cmd.Parameters.AddWithValue("@Item", myPart);
cmd.Parameters.AddWithValue("@Quantity", myQuantity);
cmd.Parameters.AddWithValue("@Price", myPrice);
cmd.Parameters.AddWithValue("@ModelID", methodID);
cmd.Parameters.AddWithValue("@DateCreatedOn", DateTime.Now);
for (int i = 0; i < row; i++)
{
cmd.Parameters["@Item"].Value = myPart;
cmd.Parameters["@Quantity"].Value = myQuantity;
cmd.Parameters["@Price"].Value = myPrice;
cmd.Parameters["@ModelID"].Value = methodID;
}
cmd.CommandType = CommandType.Text;
cmd.ExecuteNonQuery();
これでデータが保存されますが、各行が保存されるように何かを行う必要があります...これは私が書いたforeachです:
//foreach (GridViewRow rows in GridView1.Rows)
//{
// if (rows.RowType == DataControlRowType.DataRow)
// {
// string myPart = rows.Cells[0].Text;
// string myQuantity = rows.Cells[1].Text;
// string myPrice = rows.Cells[2].Text;
// }
ただし、問題は、グリッドのデータ内のすべての行を取得するのではなく、基本的に最後の行のみを保存することです。
何かアイデアはありますか?前もって感謝します!