简体   繁体   English

用户代码未处理未实现的异常

[英]Not implemented exception was unhandled by user code

Everytime I try to print the error shows up. 每次我尝试打印时都会显示错误。 it says "Not implemented exception was unhandled by user code". 它说“用户代码未处理未实现的异常”。 how to fix this sh!t? 如何解决这个问题! here's my code 这是我的代码

namespace RunwayMedlinc
{
public partial class patient : Form
{
    Print print;
    MySqlConnection con;
    String sql;
    MySqlCommand cmd;
    MySqlDataAdapter data, data2, data3;
    DataTable table = new DataTable();
    DataTable table2 = new DataTable();
    DataTable table3 = new DataTable();
    DataSet da = new DataSet();
    int age;

    public patient()
    {
        InitializeComponent();
    }

    public void view()
    {
    try
        {
            sql = "select p.mrn AS 'MRN', pp.name AS 'PATIENT NAME', pp.bday AS 'BIRTHDAY', p.age AS 'AGE', pp.gender AS 'GENDER',  p.admit AS 'ADMIT DATE', p.discharge AS 'DISCHARGE DATE', p.md AS 'PHYSICIAN'FROM p inner join pp ON p.mrn=pp.mrn where admit like'%" + year.Text + "%' and admit like'%" + month.Text + "%'";
            cmd = new MySqlCommand(sql, con);
            data.SelectCommand = cmd;
            pview.DataSource = table;
            table.Clear();
            data.Fill(table);
            pview.DataSource = table;
        }
        catch (Exception exx)
        {
            MessageBox.Show(exx.Message, "Error");
        }
    }

    public void bew()
    {
        try
        {
            sql = "select p.mrn AS 'MRN', pp.name AS 'PATIENT NAME', pp.bday AS 'BIRTHDAY', p.age AS 'AGE', pp.gender AS 'GENDER',  p.admit AS 'ADMIT DATE', p.discharge AS 'DISCHARGE DATE', p.md AS 'PHYSICIAN'FROM p inner join pp ON p.mrn=pp.mrn where admit like'%" + year2.Text + "%' and admit like'%" + month2.Text + "%'";
            cmd = new MySqlCommand(sql, con);
            data2.SelectCommand = cmd;
            pview2.DataSource = table2;
            table2.Clear();
            data2.Fill(table2);
        }
        catch (Exception exx)
        {
            MessageBox.Show(exx.Message, "Error");
        }
    }

    private void search_Enter(object sender, EventArgs e)
    {
        if (search.ForeColor == Color.Gray)
        {
            search.Clear();
            search.ForeColor = Color.Black;
        }
    }

    private void search_Leave(object sender, EventArgs e)
    {
        if (search.Text == "")
        {
            search.ForeColor = Color.Gray;
            search.Text = "SEARCH PATIENT...";
        }
    }

    private void search2_Enter(object sender, EventArgs e)
    {
        if (search2.ForeColor == Color.Gray)
        {
            search2.Clear();
            search2.ForeColor = Color.Black;
        }
    }

    private void search2_Leave(object sender, EventArgs e)
    {
        if (search2.Text == "")
        {
            search2.ForeColor = Color.Gray;
            search2.Text = "SEARCH PATIENT...";
        }
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        time.Text = DateTime.Now.ToString("h:mm:ss tt");
        date.Text = DateTime.Now.ToString("MMMM d, yyyy");
    }

    private void patient_Load(object sender, EventArgs e)
    {
        con = new MySqlConnection();
        con.ConnectionString = "server=Localhost;" + "username=root;" + "password=;" + "database=runway";
        con.Open();
        sql = "select mrn from p";
        cmd = new MySqlCommand(sql, con);
        data = new MySqlDataAdapter();
        data2 = new MySqlDataAdapter();

        month.Text = Convert.ToString(DateTime.Now.ToString("MMMM"));
        year.Text = Convert.ToString(DateTime.Now.ToString("yyyy"));

        month2.Text = Convert.ToString(DateTime.Now.ToString("MMMM"));
        year2.Text = Convert.ToString(DateTime.Now.ToString("yyyy"));

        view();

        bew();
    }

    private void clear_Click(object sender, EventArgs e)
    {
        mrn.Clear();
        name.Clear();
        phy.Clear();
        m.Checked = false;
        f.Checked = false;
        bdate.Value = DateTime.Now;
        admit.Value = DateTime.Now;
        disch.Value = DateTime.Now;

        add.Enabled = true;
        mrn.ReadOnly = false;
        name.ReadOnly = false;
        phy.ReadOnly = false;
        m.Enabled = true;
        f.Enabled = true;
        bdate.Enabled = true;
        admit.Enabled = true;
    }

    private void phy_Enter(object sender, EventArgs e)
    {
        if (phy.ReadOnly == false)
        {
            phy.Clear();
        }
    }

    private void add_Click(object sender, EventArgs e)
    {
        if (mrn.Text == "" || name.Text == "" || (m.Checked == false && f.Checked == false))
        {
            MessageBox.Show("Please fill out all information.", "", MessageBoxButtons.OK, MessageBoxIcon.Information);

        }
        else
        {
                DateTime x = admit.Value;
                DateTime y = bdate.Value;
                if (x.Month < y.Month || (x.Month == y.Month && x.Day < y.Day))
                {
                    age = x.Year - y.Year - 1;
                }
                else
                {
                    age = x.Year - y.Year;
                }

                if (m.Checked == true)
                {
                    if (name.ReadOnly == false)
                    {
                        sql = "insert into pp(mrn, name, gender, bday)values (?a, ?b, ?c, ?d)";
                        cmd = new MySqlCommand(sql, con);

                        cmd.Parameters.AddWithValue("?a", mrn.Text);
                        cmd.Parameters.AddWithValue("?b", name.Text);
                        cmd.Parameters.AddWithValue("?c", m.Text);
                        cmd.Parameters.AddWithValue("?d", bdate.Text);
                        cmd.ExecuteNonQuery();
                    }
                }

                if (f.Checked == true)
                {
                    if (name.ReadOnly == false)
                    {
                        sql = "insert into pp(mrn, name, gender, bday)values (?a, ?b, ?c, ?d)";
                        cmd = new MySqlCommand(sql, con);

                        cmd.Parameters.AddWithValue("?a", mrn.Text);
                        cmd.Parameters.AddWithValue("?b", name.Text);
                        cmd.Parameters.AddWithValue("?c", f.Text);
                        cmd.Parameters.AddWithValue("?d", bdate.Text);
                        cmd.ExecuteNonQuery();
                    }
                }

                sql = "insert into p(mrn, admit, discharge, md, age)values (?a, ?e, ?f, ?g, ?z)";
                cmd = new MySqlCommand(sql, con);

                cmd.Parameters.AddWithValue("?a", mrn.Text);
                cmd.Parameters.AddWithValue("?e", admit.Text);
                cmd.Parameters.AddWithValue("?f", null);
                cmd.Parameters.AddWithValue("?g", phy.Text);
                cmd.Parameters.AddWithValue("?z", age);
                cmd.ExecuteNonQuery();
                MessageBox.Show("Patient Successfully Added!", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Information);

                mrn.Clear();
                name.Clear();
                phy.Text = "MANGASEP, CONCEPCION R.";
                m.Checked = false;
                f.Checked = false;
                bdate.Value = DateTime.Now;
                admit.Value = DateTime.Now;
                disch.Value = DateTime.Now;

                month2.Text = Convert.ToString(DateTime.Now.ToString("MMMM"));
                year2.Text = Convert.ToString(DateTime.Now.ToString("yyyy"));
                bew();

        }
    }

    private void search_TextChanged(object sender, EventArgs e)
    {
        if (search.ForeColor != Color.Gray)
        {
            try
            {
                sql = "select p.mrn AS 'MRN', pp.name AS 'PATIENT NAME', pp.bday AS 'BIRTHDAY', p.age AS 'AGE', pp.gender AS 'GENDER',  p.admit AS 'ADMIT DATE', p.discharge AS 'DISCHARGE DATE', p.md AS 'PHYSICIAN'FROM p inner join pp ON p.mrn=pp.mrn where admit like'%" + year.Text + "%' and admit like'%" + month.Text + "%' and name like'%" + search.Text + "%'";
                cmd = new MySqlCommand(sql, con);
                data.SelectCommand = cmd;
                pview.DataSource = table;
                table.Clear();
                data.Fill(table);
            }
            catch (Exception exx)
            {
                MessageBox.Show(exx.Message, "Error");
            }
        }
    }

    private void search2_TextChanged(object sender, EventArgs e)
    {
        if (search2.ForeColor != Color.Gray)
        {
            try
            {
                sql = "select p.mrn AS 'MRN', pp.name AS 'PATIENT NAME', pp.bday AS 'BIRTHDAY', p.age AS 'AGE', pp.gender AS 'GENDER',  p.admit AS 'ADMIT DATE', p.discharge AS 'DISCHARGE DATE', p.md AS 'PHYSICIAN'FROM p inner join pp ON p.mrn=pp.mrn where admit like'%" + year2.Text + "%' and admit like'%" + month2.Text + "%' and name like'%" + search2.Text + "%'";
                cmd = new MySqlCommand(sql, con);
                data2.SelectCommand = cmd;
                pview2.DataSource = table2;
                table2.Clear();
                data2.Fill(table2);
            }
            catch (Exception exx)
            {
                MessageBox.Show(exx.Message, "Error");
            }
        }
    }

    private void pview2_Click(object sender, EventArgs e)
    {
        mrn.Text = pview2.SelectedRows[0].Cells[0].Value.ToString();
        name.Text = pview2.SelectedRows[0].Cells[1].Value.ToString();
        if (pview2.SelectedRows[0].Cells[4].Value.ToString() == "MALE")
        {
            m.Checked = true;
        }
        else
        {
            f.Checked = true;
        }
        bdate.Text = pview2.SelectedRows[0].Cells[2].Value.ToString();
        admit.Text = pview2.SelectedRows[0].Cells[5].Value.ToString();
        phy.Text = pview2.SelectedRows[0].Cells[7].Value.ToString();

        add.Enabled = false;
        mrn.ReadOnly = true;
        name.ReadOnly = true;
        phy.ReadOnly = true;
        m.Enabled = false;
        f.Enabled = false;
        bdate.Enabled = false;
        admit.Enabled = false;
    }

    private void update_Click(object sender, EventArgs e)
    {
        sql = "Update p set discharge= '" + disch.Text + "' where mrn = '" + mrn.Text + "'";
        cmd = new MySqlCommand(sql, con);
        cmd.ExecuteNonQuery();
        MessageBox.Show("Patient Successfuly Updated!");

        add.Enabled = true;
        mrn.Clear();
        mrn.ReadOnly = false;
        name.Clear();
        name.ReadOnly = false;
        phy.Text = "MANGASEP, CONCEPCION R.";
        phy.ReadOnly = false;
        m.Checked = false;
        f.Checked = false;
        bdate.Value = DateTime.Now;
        admit.Value = DateTime.Now;
        disch.Value = DateTime.Now;

        month2.Text = Convert.ToString(DateTime.Now.ToString("MMMM"));
        year2.Text = Convert.ToString(DateTime.Now.ToString("yyyy"));
        bew();
    }

    private void mrn_TextChanged(object sender, EventArgs e)
    {
        sql = "Select name, gender, bday from pp where mrn = '" + mrn.Text + "'";
        cmd = new MySqlCommand(sql, con);
        data3 = new MySqlDataAdapter();
        data3.SelectCommand = cmd;
        table3 = new DataTable();
        data3.Fill(table3);

        if (table3.Rows.Count > 0)
        {
            name.Text = Convert.ToString(table3.Rows[0][0]);
            if (Convert.ToString(table3.Rows[0][1]) == "MALE")
            {
                m.Checked = true; ;
            }
            else
            {
                f.Checked = true;
            }
            bdate.Value = Convert.ToDateTime(table3.Rows[0][2]);
            name.ReadOnly = true;
            m.Enabled = false;
            f.Enabled = false;
            bdate.Enabled = false;

        }
        else
        {
            name.Clear();
            m.Checked = false;
            f.Checked = false;
            bdate.Value = DateTime.Now;
            name.ReadOnly = false;
            m.Enabled = true;
            f.Enabled = true;
            bdate.Enabled = true;
        }
    }

    private void year_SelectedIndexChanged(object sender, EventArgs e)
    {
        view();
    }

    private void month_SelectedIndexChanged(object sender, EventArgs e)
    {
        view();
    }

    private void mrn_KeyPress(object sender, KeyPressEventArgs e)
    {

        if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) &&
            (e.KeyChar != '.'))
        {
            e.Handled = true;
        }

        if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
        {
            e.Handled = true;
        }
    }

    private void TabControl1_SelectedIndexChanged(object sender, EventArgs e)
    {
        month.Text = Convert.ToString(DateTime.Now.ToString("MMMM"));
        year.Text = Convert.ToString(DateTime.Now.ToString("yyyy"));

        month2.Text = Convert.ToString(DateTime.Now.ToString("MMMM"));
        year2.Text = Convert.ToString(DateTime.Now.ToString("yyyy"));
        search.ForeColor = Color.Gray;
        search.Text = "SEARCH PATIENT...";
        search2.ForeColor = Color.Gray;
        search2.Text = "SEARCH PATIENT...";
        mrn.Clear();
        name.Clear();
        phy.Text = "MANGASEP, CONCEPCION R.";
        m.Checked = false;
        f.Checked = false;
        bdate.Value = DateTime.Now;
        admit.Value = DateTime.Now;
        disch.Value = DateTime.Now;
    }

    private void month2_SelectedIndexChanged(object sender, EventArgs e)
    {
        bew();
    }

    private void year2_SelectedIndexChanged(object sender, EventArgs e)
    {
        bew();
    }

    private bool SetupThePrinting()
     {
         PrintDialog MyPrintDialog = new PrintDialog();
         MyPrintDialog.AllowCurrentPage = false;
         MyPrintDialog.AllowPrintToFile = false;
         MyPrintDialog.AllowSelection = false;
         MyPrintDialog.AllowSomePages = false;
         MyPrintDialog.PrintToFile = false;
         MyPrintDialog.ShowHelp = false;
         MyPrintDialog.ShowNetwork = false;
         if (MyPrintDialog.ShowDialog() != DialogResult.OK)
         return false;
         dokumento.DocumentName = "List of Patients";
         dokumento.PrinterSettings = MyPrintDialog.PrinterSettings;
         dokumento.DefaultPageSettings = MyPrintDialog.PrinterSettings.DefaultPageSettings;
         dokumento.DefaultPageSettings.Landscape = false;
         dokumento.DefaultPageSettings.Margins = new System.Drawing.Printing.Margins(10, 10, 10, 10);
         dokumento.DefaultPageSettings.Landscape = MyPrintDialog.PrinterSettings.DefaultPageSettings.Landscape;
         print = new Print(pview, dokumento, true, true, Environment.NewLine + "" + Environment.NewLine + "" + "Runway Medlinc"  + Environment.NewLine + "" + Environment.NewLine + "List of Patients" 
         + Environment.NewLine + "" + Environment.NewLine + month.Text + "  " + year.Text, new Font("Times New Roman", 12, FontStyle.Bold, GraphicsUnit.Point), Color.Black, true);
         return true;
     }

    private void printer_Click(object sender, EventArgs e)
       {
           if (SetupThePrinting())
           {
               PrintPreviewDialog MyPrintPreviewDialog = new PrintPreviewDialog();
               MyPrintPreviewDialog.Document = dokumento;
               MyPrintPreviewDialog.ShowDialog();
               dokumento.Print();
           }
       }

    private void dokumento_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
      {
          bool more = print.DrawDataGridView(e.Graphics);
          if (more == true)
          e.HasMorePages = true;
     }

}
}

Everytime I try to print the error shows up. 每次我尝试打印时都会显示错误。 it says "Not implemented exception was unhandled by user code". 它说“用户代码未处理未实现的异常”。 how to fix this sh!t? 如何解决这个问题! and the other class is here 另一个班在这里

namespace RunwayMedlinc
{
class Print
{
    private System.Windows.Forms.DataGridView pview;
    private System.Drawing.Printing.PrintDocument dokumento;
    private bool p;
    private bool p_2;
    private string p_3;
    private System.Drawing.Font font;
    private System.Drawing.Color color;
    private bool p_4;

    public Print(System.Windows.Forms.DataGridView pview, System.Drawing.Printing.PrintDocument dokumento, bool p, bool p_2, string p_3, System.Drawing.Font font, System.Drawing.Color color, bool p_4)
    {
        this.pview = pview;
        this.dokumento = dokumento;
        this.p = p;
        this.p_2 = p_2;
        this.p_3 = p_3;
        this.font = font;
        this.color = color;
        this.p_4 = p_4;
    }

    internal bool DrawDataGridView(System.Drawing.Graphics graphics)
    {
        throw new NotImplementedException();
    }
}
}

您必须在Print类中实现DrawDataGridView方法。

The PrintDocument , by itself, has no way of knowing what it is you want to print. PrintDocument本身无法知道您要打印的内容。 You've told it the formatting, but not the content. 您已经告诉过格式,但没有告诉内容。

The way to tell it is to draw the document, using the System.Drawing namespace mostly, using the Graphics property of the event as the output device. 告诉它的方法是使用事件的Graphics属性作为输出设备,主要使用System.Drawing命名空间绘制文档。 The output device is a printer driver which will translate your lines, text, etc. into the appropriate code for rendering on your specific printer, eg Postscript, PCL, whatever. 输出设备是打印机驱动程序,它将把您的行,文本等转换为适当的代码,以在您的特定打印机上进行渲染,例如Postscript,PCL等。 That doesn't matter to you. 那对你没关系。 You just need to output text, lines, and images in a virtual two-dimensional space. 您只需要在虚拟的二维空间中输出文本,线条和图像。

So 所以

  1. Put those methods back 放回那些方法

  2. Implement DrawDataGridView !!! 实现DrawDataGridView !!! Just do something simple for now so you know that it works, like 现在就做一些简单的事情,以便您知道它的工作原理,例如

     internal bool DrawDataGridView(System.Drawing.Graphics graphics) { graphics.DrawString("Hello world!"); } 

Once you have that working, next you'll have to figure out how to render the contents of the document properly. 工作完成后,接下来,您将必须弄清楚如何正确呈现文档的内容。 But that could be another SO question. 但这可能是另一个SO问题。

internal bool DrawDataGridView(System.Drawing.Graphics graphics)
{
    throw new NotImplementedException();
}

The throw line is causing the issue. throw线导致了该问题。 You need to remove that line and add an implementation there. 您需要删除该行并在其中添加一个实现。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM