Member 12456995 Ответов: 1

Void метод не собирает данные


Как я могу заполнить класс с данными, текстовое поле и данные datagridvied, и используйте собранные данные на другую форму.

Я создал этот класс, чтобы обрабатывать собранные данные
public class pos_data
{
	public int nr{ get; set; }
	public int barcode{ get; set; }
	public string name { get; set; }
	public int qty { get; set; }
	public float price { get; set; }
	public float TOTAL { get; set; }
	public float subtotal { get; set; }
	public float discount { get; set; }
	public float total{ get; set; }
	public DateTime date{ get; set; }
	public string user { get; set; }
	public string client { get; set; }
	public float valueofvatpcs { get; set; }
	public float valuewithoutvat{ get; set; }
	public int nrofarticles { get; set; }
	public float totalprice{ get; set; }
	public float totalvaluesVAT{ get; set; }
}
и создайте метод для сбора данных с помощью объекта класса give В верхней части этого вопроса
void mbushe(object sender, EventArgs e)
{
   pos_data ad = new pos_data();
   for (int i = 0; i < dataTable.Rows.Count; i++)
   {
      ad.NR = int.Parse(txtnrfatures.Text);
      ad.totalvaluesVAT = float.Parse(textBox1.Text);
      ad.barcode= int.Parse(dataTable.Rows[i][0].ToString());
      ad.name= dataTable.Rows[i][1].ToString();
      ad.qty= int.Parse(dataTable.Rows[i][2].ToString());
      ad.price= int.Parse(dataTable.Rows[i][3].ToString());
      ad.vat = int.Parse(dataTable.Rows[i][4].ToString());
      ad.subtotal = float.Parse(txttotali.Text);
      ad.discount= float.Parse(txtzbritja.Text);
      ad.total= float.Parse(totali.Text);
      ad.date= DateTime.Now;
      ad.user = lbluser.Text;
      ad.client= cmbklienti.Text;
      ad.valuevatpcs = float.Parse(dataTable.Rows[i][7].ToString());
      ad.valuewithoutvat= float.Parse(dataTable.Rows[i][6].ToString());
      ad.nrofarticles= int.Parse(lblnumri.Text);
      ad.totalprice = float.Parse(dataTable.Rows[i][5].ToString());

      Program.dta.Add(ad);
}
dta-это статический список, объявленный в Program.cs

Как я могу передать эти данные по форме 2 или форме 3, зависит от необходимости использования этих данных.

Я попробовал этот код использовать на form2/3, где я хотел, чтобы собранные данные использовались в процессе вставки
private void button1_Click(object sender, EventArgs e)
{
	pos_data myData = new pos_data();

	string faturimi = "Metoda e pagesese" + ""+ "KESH;" +"Paguar"+ txtpaguar.Text + " "+ "Kusuri"+ textBox3.Text;

	con.Open();

	SqlCommand cmd = new SqlCommand("insertfaturimi", con);
	cmd.CommandType = CommandType.StoredProcedure;

	cmd.Parameters.Add(new SqlParameter("@nr", myData.NR));
	cmd.Parameters.Add(new SqlParameter("@client", myData.client));
	cmd.Parameters.Add(new SqlParameter("@payment", faturimi));
	cmd.Parameters.Add(new SqlParameter("@subtotal", myData.subtotal));
	cmd.Parameters.Add(new SqlParameter("@disount", myData.discount));
	cmd.Parameters.Add(new SqlParameter("@total", myData.total));
	cmd.Parameters.Add(new SqlParameter("@vatvalues", myData.totalvaluesVat));
	cmd.Parameters.Add(new SqlParameter("@nrofarticles", myData.nrofarticles));
	cmd.Parameters.Add(new SqlParameter("@user", myData.user));
	cmd.Parameters.Add(new SqlParameter("@time", DateTime.Now));
	cmd.Parameters.Add(new SqlParameter("@barcode", myData.barcode));
	cmd.Parameters.Add(new SqlParameter("@name", myData.name));
	cmd.Parameters.Add(new SqlParameter("@qty", myData.qty));
	cmd.Parameters.Add(new SqlParameter("@vat", myData.vat));
	cmd.Parameters.Add(new SqlParameter("@price", myData.price));
	cmd.Parameters.Add(new SqlParameter("@totalpcs", myData.totalprice));
	cmd.Parameters.Add(new SqlParameter("@valuewithoutvatpcs", myData.valuewithoutvat));
	cmd.Parameters.Add(new SqlParameter("@vatvaluepcs", myData.valuevatpcs));

	cmd.ExecuteNonQuery();
}
И список, объявленный в программе.Cs
{
	static class Program
	{
	/// <summary>
	/// The main entry point for the application.
	/// </summary>
	[STAThread]
	static void Main()
	{
		Application.EnableVisualStyles();
		Application.SetCompatibleTextRenderingDefault(false);
		Application.Run(new Form1());
	}

	public static List<arka_data> dta;

}
Я поставил точку останова на строку void метода mbushe : Program.dta.Add(ad), после того как ошибка была выброшена , я проверил точку останова нет никаких собранных данных просто нулевое значение типа:0.0, null и т.д. прикрепите изображение
Поэтому я думаю, что что-то не так с методом пустоты мбуше.
Но этот код, выдал мне ошибку " процедура или функция ожидает параметр , который не был поставлен.Эта ошибка отображается для каждого параметра этого кода ( это означает, что данные, собранные из класса, равны нулю). Итак, мой вопрос заключается в том, что я должен изменить в void методе или классе, чтобы правильно собирать данные ?Может ли кто-нибудь помочь мне, что изменить в коде ?

Что я уже пробовал:

void mbushe(object sender, EventArgs e)
{
   pos_data ad = new pos_data();

   for (int i = 0; i < dataTable.Rows.Count; i++)
   {
      ad.NR = int.Parse(txtnrfatures.Text);
      ad.totalvaluesVAT = float.Parse(textBox1.Text);
      ad.barcode= int.Parse(dataTable.Rows[i][0].ToString());
      ad.name= dataTable.Rows[i][1].ToString();
      ad.qty= int.Parse(dataTable.Rows[i][2].ToString());
      ad.price= int.Parse(dataTable.Rows[i][3].ToString());
      ad.vat = int.Parse(dataTable.Rows[i][4].ToString());
      ad.subtotal = float.Parse(txttotali.Text);
      ad.discount= float.Parse(txtzbritja.Text);
      ad.total= float.Parse(totali.Text);
      ad.date= DateTime.Now;
      ad.user = lbluser.Text;
      ad.client= cmbklienti.Text;
      ad.valuevatpcs = float.Parse(dataTable.Rows[i][7].ToString());
      ad.valuewithoutvat= float.Parse(dataTable.Rows[i][6].ToString());
      ad.nrofarticles= int.Parse(lblnumri.Text);
      ad.totalprice = float.Parse(dataTable.Rows[i][5].ToString());

      Program.dta.Add(ad);
}
dta-это статический список, объявленный в Program.cs

[no name]

MadMyche это я scr результатов установки точки останова на Program.dta.Add(ad)
sendspace.com/file/ziuvjm-да. пустота не собирает данные. Основываясь на вашем ответе, что я должен изменить

1 Ответов

Рейтинг:
2

MadMyche

Если вы посмотрите на пустота метод, вы создаете новый экземпляр myData а затем передайте его в хранимую процедуру.
Проблема в том, что вы никогда не устанавливаете различные свойства этого, поэтому все они по умолчанию равны нулю или нулю

private void button1_Click(object sender, EventArgs e)
{
	pos_data myData = new pos_data();

	string faturimi = "Metoda e pagesese" + ""+ "KESH;" +"Paguar"+ txtpaguar.Text + " "+ "Kusuri"+ textBox3.Text;

	con.Open();

	SqlCommand cmd = new SqlCommand("insertfaturimi", con);
	cmd.CommandType = CommandType.StoredProcedure;

	cmd.Parameters.Add(new SqlParameter("@nr", myData.NR));
	// other parameters added in

	cmd.ExecuteNonQuery();