У меня есть datagridview, в котором отображаются данные о продажах на основе номера счета. У меня есть другое datagridview, в котором перечислены продукты. Я добавил событие двойного щелчка ячейки в Product datagridview, и когда я дважды нажимаю на элемент, он должен появиться в моей продаже datagridvew. Но поскольку я добавил данные из базы данных в продажу datagridview на основе номера счета, я не могу добавить новый продукт к этому datagridview. Я получаю исключение, говоря, что строки не могут быть программно добавлены в коллекцию строк datagridviews, когда элемент управления привязан к данным.Получение исключений, говорящих, что строки не могут быть добавлены программно
вот мой код в пункты DataGridView ячейки двойным щелчком
var index = dgv_POS.Rows.Add();
string a = dgv_ItemNamePOS.CurrentRow.Cells[0].Value.ToString();
dgv_POS.Rows[index].Cells[1].Value = a.ToString();
string CS = "data source=.; database=BillingSoftware; user id=sa; password=9495640";
using (SqlConnection con = new SqlConnection(CS))
{
con.Open();
SqlCommand cmd = new SqlCommand("SELECT Item_No from Items where [email protected] AND Activate='Yes'", con);
cmd.Parameters.AddWithValue("@Name", a);
string k = cmd.ExecuteScalar().ToString();
dgv_POS.Rows[index].Cells[1].Value = k;
SqlCommand cmd2 = new SqlCommand("SELECT Name from Items where [email protected] AND Activate='Yes'", con);
cmd2.Parameters.AddWithValue("@Name", a);
string k1 = cmd2.ExecuteScalar().ToString();
dgv_POS.Rows[index].Cells[2].Value = k1;
SqlCommand cmd5 = new SqlCommand("SELECT Quantity_Type from Items where [email protected] AND Activate='Yes'", con);
cmd5.Parameters.AddWithValue("@Name", a);
string k3 = cmd5.ExecuteScalar().ToString();
dgv_POS.Rows[index].Cells[3].Value = k3.ToString();
}
код на DataBound DataGridView
SqlDataAdapter da = new SqlDataAdapter("SELECT Item_no as [Item No.],Item,Qty_Type as [Qty Type], Price, Quantity, Amount FROM POS WHERE [email protected]", con);
da.SelectCommand.Parameters.AddWithValue("@Billno", txt_BillNoPOSUpdate.Text);
DataTable dt = new DataTable();
da.Fill(dt);
dgv_POSUpdate.DataSource = dt;
Вы, вероятно, нужно добавить строку в DataSet/DataTable, который DataSource для указанного DataGrid и двигаться на. Существует также доступный элемент управления для добавления новой строки в DataGrid, которую вы можете реализовать. – A3006