c#数据输入表单运行时错误 [英] c# data entry form runtime error
本文介绍了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<field> 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 > 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<field> fields = new List<field>(); 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屋!
查看全文