c#数据输入表单运行时错误 [英] c# data entry form runtime error

查看:79
本文介绍了c#数据输入表单运行时错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个附有本地数据库的数据输入表单。当我在我的Windows 8上运行时,它就像一个魅力,但是当我在其他机器上或在Windows 7下的同一台机器上运行时,我收到一个错误:



问题事件名称:CLR20r3

问题签名01:windowsformsapplication.executive

问题签名02:1.0.0.0

问题签名09:系统。 IO.FileNotFoundException

解决方案

使用System; 
使用System.Collections.Generic;使用System.ComponentModel
;
使用System.Data;使用System.Drawing
;
使用System.Linq;
使用System.Text;
使用System.Windows.Forms;
使用System.Data.SqlClient;
使用System.Data.SqlServerCe;

命名空间HDRDataEntryForm
{
公共部分类Form1:表格
{
public Form1()
{
InitializeComponent() ;
BindDataToGrid();
}
private string _textFilters;
private DataSet _ds;
frmSearch _frmSearch = null;
DataTable dt;
DataRow博士;
private void Form1_Load(object sender,EventArgs e)
{
loadEmployee();
// TODO:这行代码将数据加载到''databaseDataSet.Mainform''表中。您可以根据需要移动或删除它。
this.mainformTableAdapter.Fill(this.databaseDataSet.Mainform);

}

public void BindDataToGrid()
{
try
{
dataGridView1.DataSource = databaseDataSet.Tables [0 ]。默认视图;
dataGridView2.DataSource = databaseDataSet.Tables [0] .DefaultView;
}
catch(exception ex)
{
MessageBox.Show(string.Format(看起来像数据库文件不在它应该的地方...... \ n \ nError详细信息:{0},ex.Message),加载示例数据时出错,MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}

//搜索表单区域//

public void searchgrid_TextChanged(List& lt; field& gt; fields)
{
System.Data.DataView dv =((System.Data.DataView)dataGridView2.DataSource); //
_textFilters =; //重置过滤器
bool first = true; //处理和
foreach(字段中的字段f)
{
if(f.Value.Length& gt; 0)//仅当有值时才过滤
{
if(!first)_textFilters + =and;
_textFilters + = f.Field +like''%+ f.Value +%'';
first = false;
}

}


dv.RowFilter = _textFilters;

}

private void button2_Click(object sender,EventArgs e)
{
if(_frmSearch == null)
{
//让我们添加几列
List& lt; field& gt; fields = new List& lt; field& gt;();
field f = new field();
f.FriendlyName =UserID;
f.Field =UserID;
fields.Add(f);

f = new field();
f.FriendlyName =姓名;
f.Field =姓名;
fields.Add(f);

f = new field();
f.FriendlyName =年龄;
f.Field =年龄;
fields.Add(f);

f = new field();
f.FriendlyName =性别;
f.Field =性别;
fields.Add(f);

f = new field();
f.FriendlyName =Family_Member_Relation;
f.Field =Family_Member_Relation;
fields.Add(f);

f = new field();
f.FriendlyName =Family_Member_Name;
f.Field =Family_Member_Name;
fields.Add(f);

f = new field();
f.FriendlyName =Shnong;
f.Field =Shnong;
fields.Add(f);

f = new field();
f.FriendlyName =Dong;
f.Field =Dong;
fields.Add(f);

f = new field();
f.FriendlyName =Grand;
f.Field =Grand;
fields.Add(f);

f = new field();
f.FriendlyName =金额;
f.Field =金额;
fields.Add(f);

f = new field();
f.FriendlyName =Phone_Number;
f.Field =Phone_Number;
fields.Add(f);

f = new field();
f.FriendlyName =Date_Registered;
f.Field =Date_Registered;
fields.Add(f);

f = new field();
f.FriendlyName =Date_Recieved;
f.Field =Date_Recieved;
fields.Add(f);

f = new field();
f.FriendlyName =状态;
f.Field =状态;
fields.Add(f);



_frmSearch = new frmSearch(fields);
_frmSearch.TextChanged + = new SearchContextChangedHandler(searchgrid_TextChanged);
}
_frmSearch.ShowDialog();
this.btoReset.Visible = true;
}

private void btoReset_Click(object sender,EventArgs e)
{
{
_frmSearch = null;
_textFilters =;
System.Data.DataView dv =((System.Data.DataView)dataGridView1.DataSource); //
dv.RowFilter = _textFilters;

this.btoReset.Visible = false;
}
}
//搜索表格结束//

//编辑和更新表单开始//

public void loadEmployee( )
{
SqlCeConnection con = new SqlCeConnection(Data Source = Database.sdf);
try
{
SqlCeDataAdapter ADAP = new SqlCeDataAdapter(Select UserID,Name,Age,Gender,Family_Member_Relation,Family_Member_Name,Shnong,Dong,Grand,Amount,Phone_Number,Date_Registered,Date_Recieved,Status from Mainform,con);

ADAP.Fill(databaseDataSet,Mainform);
this.dataGridView2.DataSource = databaseDataSet.Tables [Mainform];
databaseDataSet.GetChanges();
dataGridView1.RefreshEdit();
dataGridView2.RefreshEdit();
this.mainformTableAdapter.Fill(this.databaseDataSet.Mainform);




}
catch(例外)
{
}



}

private void btoedit_Click(object sender,EventArgs e)
{
frmUpdate f2 = new frmUpdate(this);
f2.UserID = dataGridView2.CurrentRow.Cells [0] .Value.ToString();
f2.Name = dataGridView2.CurrentRow.Cells [1] .Value.ToString();
f2.Age = dataGridView2.CurrentRow.Cells [2] .Value.ToString();
f2.Gender = dataGridView2.CurrentRow.Cells [3] .Value.ToString();
f2.Family_Member_Relation = dataGridView2.CurrentRow.Cells [4] .Value.ToString();
f2.Family_Member_Name = dataGridView2.CurrentRow.Cells [5] .Value.ToString();
f2.Shnong = dataGridView2.CurrentRow.Cells [6] .Value.ToString();
f2.Dong = dataGridView2.CurrentRow.Cells [7] .Value.ToString();
f2.Grand = dataGridView2.CurrentRow.Cells [8] .Value.ToString();
f2.Amount = dataGridView2.CurrentRow.Cells [9] .Value.ToString();
f2.Phone_Number = dataGridView2.CurrentRow.Cells [10] .Value.ToString();
f2.Date_Registered = dataGridView2.CurrentRow.Cells [11] .Value.ToString();
f2.Date_Recieved = dataGridView2.CurrentRow.Cells [12] .Value.ToString();
f2.Status = dataGridView2.CurrentRow.Cells [13] .Value.ToString();
f2.passDgvValueToForm2();
f2.ShowDialog();
loadEmployee();
}


搜索表格代码:

使用System; 
使用System.Collections.Generic;使用System.ComponentModel
;
使用System.Data;使用System.Drawing
;
使用System.Text;
使用System.Windows.Forms;
使用System.Collections;

命名空间WindowsFormsApplication4
{
public partial class frmSearch:Form
{
public event SearchContextChangedHandler TextChanged;
/// // < 摘要 >
///基于字段集构建控件
/// < / summary >
/// < param name = 字段 > < / param >
private void BuildControls(List < 字段 > 字段)
{
int top = 10;
bool focused = false;

#region每个字段的循环
foreach(字段中的字段f)
{
Label label = new Label();
label.Text = f.FriendlyName +:;
label.Top = top;
label.Left = 10;
label.AutoSize = true;
this.Controls.Add(label);

TextBox textbox = new TextBox();
textbox.TextChanged + = new EventHandler(textBox_TextChanged);
textbox.Tag = f.Field;
textbox.Top = top;
textbox.Left = 135;
textbox.Width = this.Width - 180;
if(!focused)
{

textbox.Focus(); //第一个控件聚焦
focused = true;
}
top + = 35;
this.Controls.Add(textbox);
}
#endregion

this.Height = top + 30;
}

public frmSearch(List < field > 字段)
{
InitializeComponent();
BuildControls(字段);
}


/// < 摘要 >
///返回包含过滤器值的字段集合
/// < / summary >
/// < 返回 > < ; / returns >
private List < 字段 > GetFilterValues()
{
列出< 字段 > fields = new List < 字段 > ();

foreach(在此.Controls中控制ctrl)
{
if(ctrl.GetType()== typeof(TextBox))
{
field f = new field();
f.Field = ctrl.Tag.ToString();
f.Value = ctrl.Text;
fields.Add(f);
}
}
返回字段;
}

private void textBox_TextChanged(object sender,EventArgs e)
{
if(TextChanged!= null)
TextChanged(GetFilterValues());
}
private void frmSearch_Load(object sender,EventArgs e)
{

}
}
}


I have a data entry form with a local database attached. when I run it on my windows 8 it works like a charm but when I run it on other machine or on the same machine under windows 7. I get an error:

problem event name: CLR20r3
problem signature 01: windowsformsapplication.executive
problem signature 02: 1.0.0.0
problem signature 09: System.IO.FileNotFoundException

解决方案

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data.SqlServerCe;

namespace HDRDataEntryForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            BindDataToGrid();
        }
        private string _textFilters;
        private DataSet _ds;
        frmSearch _frmSearch = null;
        DataTable dt;
        DataRow dr;
        private void Form1_Load(object sender, EventArgs e)
        {
            loadEmployee();
            // TODO: This line of code loads data into the ''databaseDataSet.Mainform'' table. You can move, or remove it, as needed.
            this.mainformTableAdapter.Fill(this.databaseDataSet.Mainform);

        }

        public void BindDataToGrid()
        {
            try
            {
                dataGridView1.DataSource = databaseDataSet.Tables[0].DefaultView;
                dataGridView2.DataSource = databaseDataSet.Tables[0].DefaultView;
            }
            catch (Exception ex)
            {
                MessageBox.Show(string.Format("Seems like the database file is not where it should... \n\nError details: {0}", ex.Message), "Error loading sample data", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

 //Search Form Area//

        public void searchgrid_TextChanged(List&lt;field&gt; fields)
        {
            System.Data.DataView dv = ((System.Data.DataView)dataGridView2.DataSource); //
            _textFilters = ""; //reset filters
            bool first = true; //to handle the " and "
            foreach (field f in fields)
            {
                if (f.Value.Length &gt; 0) //only if there is a value to filter for
                {
                    if (!first) _textFilters += " and ";
                    _textFilters += f.Field + " like ''%" + f.Value + "%''";
                    first = false;
                }

            }


            dv.RowFilter = _textFilters;

        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (_frmSearch == null)
            {
                //let''s add a couple of columns
                List&lt;field&gt; fields = new List&lt;field&gt;();
                field f = new field();
                f.FriendlyName = "UserID";
                f.Field = "UserID";
                fields.Add(f);

                f = new field();
                f.FriendlyName = "Name";
                f.Field = "Name";
                fields.Add(f);

                f = new field();
                f.FriendlyName = "Age";
                f.Field = "Age";
                fields.Add(f);

                f = new field();
                f.FriendlyName = "Gender";
                f.Field = "Gender";
                fields.Add(f);

                f = new field();
                f.FriendlyName = "Family_Member_Relation";
                f.Field = "Family_Member_Relation";
                fields.Add(f);

                f = new field();
                f.FriendlyName = "Family_Member_Name";
                f.Field = "Family_Member_Name";
                fields.Add(f);

                f = new field();
                f.FriendlyName = "Shnong";
                f.Field = "Shnong";
                fields.Add(f);

                f = new field();
                f.FriendlyName = "Dong";
                f.Field = "Dong";
                fields.Add(f);

                f = new field();
                f.FriendlyName = "Grand";
                f.Field = "Grand";
                fields.Add(f);

                f = new field();
                f.FriendlyName = "Amount";
                f.Field = "Amount";
                fields.Add(f);

                f = new field();
                f.FriendlyName = "Phone_Number";
                f.Field = "Phone_Number";
                fields.Add(f);

                f = new field();
                f.FriendlyName = "Date_Registered";
                f.Field = "Date_Registered";
                fields.Add(f);

                f = new field();
                f.FriendlyName = "Date_Recieved";
                f.Field = "Date_Recieved";
                fields.Add(f);

                f = new field();
                f.FriendlyName = "Status";
                f.Field = "Status";
                fields.Add(f);



                _frmSearch = new frmSearch(fields);
                _frmSearch.TextChanged += new SearchContextChangedHandler(searchgrid_TextChanged);
            }
            _frmSearch.ShowDialog();
            this.btoReset.Visible = true;
        }

        private void btoReset_Click(object sender, EventArgs e)
        {
            {
                _frmSearch = null;
                _textFilters = "";
                System.Data.DataView dv = ((System.Data.DataView)dataGridView1.DataSource); //
                dv.RowFilter = _textFilters;

                this.btoReset.Visible = false;
            }
        }
        //Search Form End//

        //Edit and Update Form Start//

        public void loadEmployee()
        {
            SqlCeConnection con = new SqlCeConnection("Data Source=Database.sdf");
            try
            {
                SqlCeDataAdapter ADAP = new SqlCeDataAdapter("Select UserID, Name, Age, Gender, Family_Member_Relation, Family_Member_Name, Shnong, Dong, Grand, Amount, Phone_Number, Date_Registered, Date_Recieved, Status from Mainform", con);

                ADAP.Fill(databaseDataSet, "Mainform");
                this.dataGridView2.DataSource = databaseDataSet.Tables["Mainform"];
                databaseDataSet.GetChanges();
                dataGridView1.RefreshEdit();
                dataGridView2.RefreshEdit();
                this.mainformTableAdapter.Fill(this.databaseDataSet.Mainform);




            }
            catch (Exception)
            {
            }



        }

        private void btoedit_Click(object sender, EventArgs e)
        {
            frmUpdate f2 = new frmUpdate(this);
            f2.UserID = dataGridView2.CurrentRow.Cells[0].Value.ToString();
            f2.Name = dataGridView2.CurrentRow.Cells[1].Value.ToString();
            f2.Age = dataGridView2.CurrentRow.Cells[2].Value.ToString();
            f2.Gender = dataGridView2.CurrentRow.Cells[3].Value.ToString();
            f2.Family_Member_Relation = dataGridView2.CurrentRow.Cells[4].Value.ToString();
            f2.Family_Member_Name = dataGridView2.CurrentRow.Cells[5].Value.ToString();
            f2.Shnong = dataGridView2.CurrentRow.Cells[6].Value.ToString();
            f2.Dong = dataGridView2.CurrentRow.Cells[7].Value.ToString();
            f2.Grand = dataGridView2.CurrentRow.Cells[8].Value.ToString();
            f2.Amount = dataGridView2.CurrentRow.Cells[9].Value.ToString();
            f2.Phone_Number = dataGridView2.CurrentRow.Cells[10].Value.ToString();
            f2.Date_Registered = dataGridView2.CurrentRow.Cells[11].Value.ToString();
            f2.Date_Recieved = dataGridView2.CurrentRow.Cells[12].Value.ToString();
            f2.Status = dataGridView2.CurrentRow.Cells[13].Value.ToString();
            f2.passDgvValueToForm2();
            f2.ShowDialog();
            loadEmployee();
        }


Search Form Code:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;

namespace WindowsFormsApplication4
{
    public partial class frmSearch : Form
    {
        public event SearchContextChangedHandler TextChanged;
        /// <summary>
        /// Build controls based on fields collection
        /// </summary>
        /// <param name="fields"></param>
        private void BuildControls(List<field> fields)
        {
            int top = 10;
            bool focused = false;

            #region Loop for each field
            foreach (field f in fields)
            {
                Label label = new Label();
                label.Text = f.FriendlyName + ":";
                label.Top = top;
                label.Left = 10;
                label.AutoSize = true;
                this.Controls.Add(label);

                TextBox textbox = new TextBox();
                textbox.TextChanged += new EventHandler(textBox_TextChanged);
                textbox.Tag = f.Field;
                textbox.Top = top;
                textbox.Left = 135;
                textbox.Width = this.Width - 180;
                if (!focused)
                {

                    textbox.Focus(); //the first control focused
                    focused = true;
                }
                top += 35;
                this.Controls.Add(textbox);
            }
            #endregion

            this.Height = top + 30;
        }

        public frmSearch(List<field> fields)
        {
            InitializeComponent();
            BuildControls(fields);
        }


        /// <summary>
        /// Returns field collection with filter values
        /// </summary>
        /// <returns></returns>
        private List<field> GetFilterValues()
        {
            List<field> fields = new List<field>();

            foreach (Control ctrl in this.Controls)
            {
                if (ctrl.GetType() == typeof(TextBox))
                {
                    field f = new field();
                    f.Field = ctrl.Tag.ToString();
                    f.Value = ctrl.Text;
                    fields.Add(f);
                }
            }
            return fields;
        }

        private void textBox_TextChanged(object sender, EventArgs e)
        {
            if (TextChanged != null)
                TextChanged(GetFilterValues());
        }
        private void frmSearch_Load(object sender, EventArgs e)
        {

        }
    }
}


这篇关于c#数据输入表单运行时错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆