ASP.NET、C#を使用して、SQL Serverテーブルの各行の特定の列を更新しようとしています。ループを使用してSQL Serverテーブルの各行を更新する
このコードを実行すると、列の最初の行のOrderNoを1にします。その後、テーブルの他の既存の行に対してOrderNoを1ずつ増やします。
現時点では、1行のOrderNoを更新できますが、すべての行を正しく読み取るループを得ることはできません。&のインクリメントが必要です。ここで
は私のテーブル
、以下の構造が、私のC#である:ここでは
con.Open();
SqlCommand cmdUpdateOrderNo;
cmdUpdateOrderNo = new SqlCommand("UPDATE tblImages SET [OrderNo][email protected] WHERE [OrderNo] = 2;", con);
cmdUpdateOrderNo.Parameters.AddWithValue("@O", 4);
cmdUpdateOrderNo.ExecuteNonQuery();
は私があるOrderNoを更新する必要がある理由です:
protected void Timer1_Tick(object sender, EventArgs e)
{
int i = (int)ViewState["ImageDisplayed"];
i = i + 1;
ViewState["ImageDisplayed"] = i;
DataRow imageDataRow = ((DataSet)ViewState["ImageData"]).Tables["image"].Select().FirstOrDefault(x => x["order"].ToString() == i.ToString());
if (imageDataRow != null)
{
Image1.ImageUrl = "~/MyImages/" + imageDataRow["name"].ToString();
lblImageName.Text = imageDataRow["name"].ToString();
lblImageOrder.Text = imageDataRow["order"].ToString();
lblImageDesc.Text = imageDataRow["Desc"].ToString();
}
else
{
SetImageUrl();
}
}
private void SetImageUrl()
{
DataSet ds = new DataSet();//Creating a dataset
SqlDataAdapter da = new SqlDataAdapter("SELECT Name, [Order], [Desc] FROM tblImages", con);
da.Fill(ds, "image");
ViewState["ImageData"] = ds;//storing the dataset in a ViewState variable
ViewState["ImageDisplayed"] = 1;//storing order number of the image currently displayed
DataRow imageDataRow = ds.Tables["image"].Select().FirstOrDefault(x => x["order"].ToString() == "1");
Image1.ImageUrl = "~/MyImages/" + imageDataRow["name"].ToString();
lblImageName.Text = imageDataRow["name"].ToString();
lblImageOrder.Text = imageDataRow["order"].ToString();
lblImageDesc.Text = imageDataRow["Desc"].ToString();
}
なぜ条件あるOrderNo = 2へのあなたのコマンドを変更してみてください?これにより、OrderNo = 2(たぶん1つ)の行に制限されます – Steve
注文番号を並べ替えることは、奇妙で、損害を与える可能性があるようです。なぜこれをやりたいのですか? – Jamiec
例: – Lamak