В настоящее время я сетки данных, которыеCheckbox asp.net C# Сетка
"SELECT * FROM table WHERE Hentet = 'nej';"
по этой сетке у меня есть точная копия его, но
"WHERE Hentet = 'Ja';"
, как вы увидите в коде.
Работает с двумя сетками и получает данные, которые они должны получить, однако есть флажок в каждой строке «Сетка 1», поэтому вы можете выбрать «Все строки», нажмите кнопку, и я хочу, чтобы значение Nej;
было измените на Ja;
на этой кнопке. Нажмите, поэтому строки с отмеченным флажком будут перемещены в Grid2, теперь их значение равно Ja
. В Grid2 нет столбца флажка, поэтому его значение только от grid1 до grid2, а не в обоих направлениях. не
Сетка 1
<asp:DataGrid ID="GridView1" runat="server" DataSourceID="SqlDataSource1" AutoGenerateColumns="false">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="dato" HeaderText="Dato">
</asp:BoundColumn>
<asp:BoundColumn DataField="Antal" HeaderText="Antal">
</asp:BoundColumn>
<asp:Boundcolumn HeaderText="Navn" Datafield="VareNAvn">
</asp:Boundcolumn>
<asp:BoundColumn DataField="KøbtAfBrugerID" HeaderText="Købt af ID">
</asp:BoundColumn>
<asp:Boundcolumn HeaderText="Hented" DataField="Afhented">
</asp:Boundcolumn>
</Columns>
</asp:DataGrid>
<asp:Button ID="Button_Hented" CssClass="btfarve" runat="server" Text="Afhentet" OnClick="Button_Hented_Click" />
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:DatabaseConnectionString1 %>"
SelectCommand="SELECT * FROM [Transactioner] WHERE afhented ='Nej';">
</asp:SqlDataSource>
СЕТКА2
<asp:DataGrid ID="GridView2" runat="server" DataSourceID="SqlDataSource2" AutoGenerateColumns="false">
<Columns>
<asp:BoundColumn DataField="dato" HeaderText="Dato">
</asp:BoundColumn>
<asp:BoundColumn DataField="Antal" HeaderText="Antal">
</asp:BoundColumn>
<asp:Boundcolumn HeaderText="Navn" Datafield="VareNAvn">
</asp:Boundcolumn>
<asp:BoundColumn DataField="KøbtAfBrugerID" HeaderText="Købt af ID">
</asp:BoundColumn>
<asp:Boundcolumn HeaderText="Hented" DataField="Afhented">
</asp:Boundcolumn>
</Columns>
</asp:DataGrid>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:DatabaseConnectionString1 %>"
SelectCommand="SELECT * FROM [Transactioner] WHERE afhented ='Ja';">
</asp:SqlDataSource>
Код За
protected void Button_Hented_Click(object sender, EventArgs e)
{
string Hejsa;
SqlConnection conn = new SqlConnection();
conn.ConnectionString = ConfigurationManager.ConnectionStrings["DatabaseConnectionString1"].ToString();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT * FROM Transactioner";
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
Hejsa = reader["Id"].ToString();
foreach (DataGridItem item in GridView1.Items)
{
CheckBox Cb = item.Cells[0].Controls[1] as CheckBox;
if (Cb.Checked)
{
SqlConnection conn2 = new SqlConnection();
conn2.ConnectionString =
ConfigurationManager.ConnectionStrings["DatabaseConnectionString1"].ToString();
SqlCommand cmd2 = new SqlCommand();
cmd2.Connection = conn2;
cmd2.CommandText = "UPDATE Transactioner"
+ " SET Afhented = @Afhented"
+ " where Id = @Id";
cmd2.Parameters.Add("@Afhented", SqlDbType.NVarChar).Value = "Ja";
cmd2.Parameters.Add("@Id", SqlDbType.Int).Value = Hejsa;
conn2.Open();
cmd2.ExecuteNonQuery();
conn2.Close();
}
}
Response.Redirect(Request.RawUrl);
}
conn.Close();
}
Так это весь код, я получаю НЕТ сообщения об ошибках atall, и я действительно не могу увидеть, что снова не так. Все, что я действительно хочу, чтобы код выполнял, - это нажать кнопку, если флажок установлен, измените значение «Nej» на «Ja». Извините, если мой вопрос был трудно понять. Tekar
Hejsa = читатель ["Id"]. ToString(); всегда будет давать вам первую запись в таблице. Вы только обновляете эту запись. – Hakunamatata
@Hakunamatata А я вижу .. Какие-нибудь подсказки о том, как я пойду на правильный путь отсюда? – tekar