グリッドビューの編集モードでデータを更新しようとしました。
実際のコードでは正しく送信されません。HTML で templateField にしようとしましたが、うまくいきません。現在、グリッドビューの編集モードで日付を変更するとプログラムが壊れてしまいます。これは Page_Load に入れます。グリッドをソートする条件では、グリッドはバインドされています。
if (ViewState["sorting"] == null)
{
String myquery = "Select * from Venituri";
SqlConnection sqlCon = new SqlConnection(CS);
SqlCommand cmd = new SqlCommand
{
CommandText = myquery,
Connection = sqlCon
};
SqlDataAdapter da = new SqlDataAdapter
{
SelectCommand = cmd
};
DataSet ds = new DataSet();
da.Fill(ds);
GridViewIncomes.DataSource = ds;
GridViewIncomes.DataSourceID = String.Empty;
GridViewIncomes.DataBind(); //here is a break when I was modified with the suggest code
}
protected void GridViewIncomes_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
SqlConnection sqlCon = new SqlConnection(CS);
int index = GridViewIncomes.EditIndex;
GridViewRow row = GridViewIncomes.Rows[index];
int VenitId = Convert.ToInt32(GridViewIncomes.DataKeys[e.RowIndex].Value);
string Denumire = ((TextBox)row.Cells[2].Controls[0]).Text.ToString().Trim();
var MyDateInsCalendar = GridViewIncomes.Rows[GridViewIncomes.EditIndex].FindControl("Data") as Calendar;
MyDateInsCalendar.Visible = false;
string Suma = ((TextBox)row.Cells[4].Controls[0]).Text.ToString().Trim();
string Descriere = ((TextBox)row.Cells[5].Controls[0]).Text.ToString().Trim();
string sql = "UPDATE Venituri SET Denumire='" + Denumire + "',Data='" + MyDateInsCalendar + "',Suma='" + Suma + "',Descriere='" + Descriere + "' WHERE VenitId=" + VenitId + "";
SqlCommand cmd = new SqlCommand(sql, sqlCon);
sqlCon.Open();
int temp = cmd.ExecuteNonQuery();
sqlCon.Close();
if (temp == 1)
{
lblSuccessMessage.Text = "Actualizat cu succes!";
}
GridViewIncomes.EditIndex = -1;
lblSuccessMessage.Text = "";
}
`
.aspx
<asp:BoundField HeaderText="Data" SortExpression="Data" DataField="Data" />
日付をグリッドビューに編集し、データベースで更新します。