Atul Rokade Ответов: 1

Как показать данные в crystal report без использования базы данных


Я создаю одно медицинское приложение в этом приложении у меня есть четыре текстовых поля и один datagridview в форме (1) и Crystal report в форме (2)

я передаю данные из формы (1) в форму(2), но когда я запускаю приложение, оно показывает мне исключение, что входная строка не была в правильном формате.Не мог хранить 18 /06 /2016; в столбце количество. Ожидаемый тип-Int32. в ДТ.Строк.Добавить(msktextdate.Текст, txtname.Текст, txtdoctorname.Текст, txtaddress.Текст); эта линия

Столбец количества находится в datagridview, но все же он показывает мне выше ошибку здесь im paste my all form (1) and form (2) code

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

public void createrow()
{
if (dt.Rows.Count <= 0)
{
DataColumn dc1 = new DataColumn("Quantity", typeof(int));
DataColumn dc2 = new DataColumn("Medicine_name", typeof(string));
DataColumn dc3 = new DataColumn("Medicine_cost", typeof(string));
DataColumn dc4 = new DataColumn("Manufacture_Name", typeof(string));
DataColumn dc5 = new DataColumn("Batch_No", typeof(string));
DataColumn dc6 = new DataColumn("Expiry_Date", typeof(DateTime));
DataColumn dc7 = new DataColumn("Rupees", typeof(int));
DataColumn dc8 = new DataColumn("Total", typeof(int));
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
dt.Columns.Add(dc3);
dt.Columns.Add(dc4);
dt.Columns.Add(dc5);
dt.Columns.Add(dc6);
dt.Columns.Add(dc7);
dt.Columns.Add(dc8);
dt.Rows.Add(msktextdate.Text, txtname.Text, txtdoctorname.Text, txtaddress.Text);
dataGridView1.DataSource = dt;
ds.Tables.Add(dt);
}
private void btnadd_Click(object sender, EventArgs e)
{
createrow();
Form2 frm = new Form2();
frm.Show();

} 

public DataSet returndata()
{
return ds;
}
Form2 code :

private void crystalReportViewer1_Load(object sender, EventArgs e)
{
Form2 frm = new Form2();
CrystalReport1 rpt = new CrystalReport1();
Form1 frm1 = new Form1();
DataSet ds = new DataSet();
ds = frm1.returndata();
rpt.SetDataSource(ds.Tables["table1"]);
crystalReportViewer1.ReportSource = rpt;
crystalReportViewer1.Refresh();
}

Maciej Los

dt.Rows.Add(msktextdate.Text, ... текст есть текст и ничего больше! Вы должны преобразовать текст в целое число!

CHill60

Ваш первый столбец - "количество" типа int, но вы добавляете текст, который на самом деле является датой ... ДТ. строки.Добавить строку, похоже, не имеет ничего общего с таблицей данных, которую вы пытаетесь заполнить

1 Ответов

Рейтинг:
2

Maciej Los

Пожалуйста, начните здесь:
Создание отчета Crystal Reports без базы данных[^]
C# Crystal Reports без базы данных[^]
Crystal Report В Приложении Windows Без Подключения К Базе Данных[^]

Как я уже говорил в комментарии к этому вопросу, вы должны преобразовать данные из string в правильный тип данных (int, datetime) при добавлении данных из элемента управления textbox в datatable. Как это сделать? Пожалуйста проверить: Как преобразовать строку в число (руководство по программированию на C# )[^]