请大家帮助看下,我的类应该怎样定义 你应该将文件名或者数据库连接字符串定义为一个singleton类。OpenOledbConnection方法的访问级别最好定义为private,以免类外部的调用在打开连接并执行操作后后不关闭连接。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 上面代码中:InsertToTable(string filename,string tablename,string columnname,string colunmvalue)GetStudent(string filename,string tablename,string colunmname) lijipan,小弟是菜鸟,希望能给予代码指导。 OpenOledbConnection 是private的InsertToTable()是public的GetStudent()是public的现在不知道filename应该用什么方式定义singleton类?我怎么没查到,还望给予帮助。 我觉得这样也没有什么不妥的地方,如果一定要把参数改为属性,其实也不难,给你点提示。首先把filename提升为属性,并且该属性只在构造函数中赋值:public .ctor(string filename){ this.filename = filename;}private string filenamepublic string Filename{ get { return this.filename; }}然后把原来的方法做适当的改动,例如:OpenOledbConnection() { string onnstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + this.filename + ";Extended Properties=Excel 8.0"; System.Data.OleDb.OleDbConnection oledbconn = new System.Data.OleDb.OleDbConnection(connstr); oledbconn.Open(); return oledbconn; } 最后,也是最重要的一点,就是在外部调用时要声明两个对象的实例,分别对应不同的文件,如下:AskClass askclass1 = new AskClass(desfilename.Text);AskClass askclass2 = new AskClass(System.IO.Path.Combine(Application.StartupPath, "student.xls"));string tableName = tableslist.Text + "$";foreach (string str in askclass1.GetStudentname(tableslist.Text + "$", columnslist.Text)) { askclass2.InsertToTable(tableName, "姓名", str); } 顶1楼的。string connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";Extended Properties=Excel 8.0"; 放在open里不是很好。如果lz你有时间,最好使用IConnection, IDataAdaptar等接口来写一个读写数据库的基类。(最好还支持stored producure。)这样对oledb、sqldb、oracle都提供支持。 WPF中如何获取邮箱联系人列表(企业云邮箱) C#如何实现两台打印机同时打印 dataset中多个表他们的主从关系怎么确定啊 TreeView节点问题 请教关于C#中GB2312和UTF8编码转换的问题 紧急!!怎么让form响应全部的键盘事件(获得焦点)? 请问在AD里如何得到online的计算机? 为什么在客户那里安装后运行,提示JIT调试器不可用,救命~~~~~ 用C#连VSS时的问题. 关于C# .NET的问题,请大家给提些宝贵意见~!! TcpClient问题【网路编程】--急!! 请问winform里的TableLayoutPanel控件怎么动态设置行数?
GetStudent(string filename,string tablename,string colunmname)
InsertToTable()是public的
GetStudent()是public的现在不知道filename应该用什么方式定义
singleton类?我怎么没查到,还望给予帮助。
{
this.filename = filename;
}private string filename
public string Filename
{
get { return this.filename; }
}然后把原来的方法做适当的改动,例如:
OpenOledbConnection()
{
string onnstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + this.filename + ";Extended Properties=Excel 8.0";
System.Data.OleDb.OleDbConnection oledbconn = new System.Data.OleDb.OleDbConnection(connstr);
oledbconn.Open();
return oledbconn;
} 最后,也是最重要的一点,就是在外部调用时要声明两个对象的实例,分别对应不同的文件,如下:
AskClass askclass1 = new AskClass(desfilename.Text);
AskClass askclass2 = new AskClass(System.IO.Path.Combine(Application.StartupPath, "student.xls"));
string tableName = tableslist.Text + "$";foreach (string str in askclass1.GetStudentname(tableslist.Text + "$", columnslist.Text))
{
askclass2.InsertToTable(tableName, "姓名", str);
}
放在open里不是很好。如果lz你有时间,最好使用IConnection, IDataAdaptar等接口来写一个读写数据库的基类。(最好还支持stored producure。)
这样对oledb、sqldb、oracle都提供支持。