我数据库里有一个表,表名为mm_itm,其结构为:
item_no c(10)
item_name c(20)
item_price n(9,2)
现在要做一个针对这个表的数据录入界面,现在网上的例子无外乎下面两种方法:
一:在设计时将通用界面,将dataset,datatable全部建好,并将数据绑定好。
二:在表单实例中写入这样的代码(下面的MySqlConnect为已打开的连接,My开的为定义的变量,Text开的为表单上的控件):
MyDataSet = new dataset(); //建立一个DataSet
string SqlStr = "select * from mm_itm"; //SQL语句
MySqlCommand = new SqlCommand(SqlStr,MySqlConnect); //建立一个SqlCommand
  MySqlDataAdapter = new SqlDataAdapter(); //建立一个SqlDataAdapter
MySqlDataAdapter.SelectCommand = MySqlCommand; //为SqlDataAdapter指定select语句
MySqlCommandBuilder = new SqlCommandBuilder(MySqlDataAdapter); //生成SqlDataAdapter的update,insert,delete语句
MySqlDataAdapter.Fill(MyDataSet,"mm_itm"); //填充DataSet中的DataTable(名字为mm_itm)//下面三句将表单上Text_item_no等三个文本框的Text属性与MyDataSet中的表的mm_itm的三个字段绑定。
Text_item_no.DataBinding.Add(new Binding(“text”,MyDataSet,”mm_itm.item_no”));
Text_item_no.DataBinding.Add(new Binding(“text”,MyDataSet,”mm_itm.item_no”));
         Text_item_no.DataBinding.Add(new Binding(“text”,MyDataSet,”mm_itm.item_no”));

****************************************************************************************
现在我想这样来处理(所有这些工作都在类中完成):
1、写一个自定义的类MyForm,继承自Form,在这个类中,加入几个属性:
SqlTableName: 指定SQL数据库中的数据表名,用于在使用时根据实例指定的表名,自动生成相应的DataSet,SqlDataAdapter,DataSet
PriKey: 指定该表的主键
2、再写一个自定义类MyTextBox,继承自TextBox,在这个类中,也加几个属性:
SqlFieldName: 指定这个文本框在运行时要绑定的数据表中的一个字段名,用于将文本框的Text属性绑定到已生成的DataSet的一个列上。****************************************************************************************
在设计时,我只需要:
建一个Form继承自MyForm,名称为MyForm1;
设置MyForm1的SqlTableName为mm_itm(就是表名),PriKey属性为item_no(就是表的主键名);
将自定义的MyTextBox拖三个到MyForm1上来,
分别命名为:
Text_item_no,其SqlFieldName设为item_no(字段名字);
Text_item_name,其SqlFieldName设为item_name(字段名字);
Text_item_price,其SqlFieldName设为item_price(字段名字);*******************************************************************************************
在类的代码中要实现的东西:(当然,做这些的前题是已经有连接打开了。)
1、表单(MyForm类的实例)在运行时,根据其SqlTableName设置的表名,自动生成一个DataSet,DataTable
2、各个文本框(就是MyTextBox类的继承实例)在加载时,根据其SqlFieldName设置,自动与DataTable中的对应的字段进行绑定。
在实现上面的功能的代码中,我想将所有的DataSet,DataAdapter,SqlCommand等变量名全部使用随机生成的唯一变量名。以防在打开多个界面时发生冲突。
还有各个代码应该怎么写,放在什么地方不太清楚。如果上面的功能可以实现,则在做界面时基本上不用考虑数据保存方面的工作了,只需要将控件拖到表单上,设置几个属性就成了。麻烦高手帮助看看,最好做个实例(都是WinForm,不是WebForm)。
请高人将实现后的实例发送一份给我:[email protected],   QQ:251378520
小弟先行谢过!