stringdir="";
privatestringfilepath="";
privatestringmodel="";
protectedstringdata="abcdefghi";
publicForm1()
{
InitializeComponent();
}
///<summary>
///获取数据
///</summary>
///<paramname="sql"></param>
///<returns></returns>
publicDataTableGetTable(stringsql)
{
DataSetds=newDataSet();
try
{
SqlConnectionconn=newSqlConnection();
conn.ConnectionString="initialcatalog="+this.tbdata.Text.TrimEnd().ToString()+";datasource=.;userid="+this.tbuser.Text.TrimEnd()+";password="+this.tbpass.Text.TrimEnd();
SqlCommandcmd=newSqlCommand();
cmd.Connection=conn;
cmd.CommandText=sql;
SqlDataAdapterda=newSqlDataAdapter();
da.SelectCommand=cmd;
da.Fill(ds);
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
returnds.Tables[0];
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
DataTabledt=this.GetTable("select*fromsysobjectswherextype='u'orderbystatusdesc");
for(inti=0;i<dt.Rows.Count-1;i++)
{
stringtableBean=Convert.ToString(dt.Rows[i]["name"]??"").ToUpper();
tableBean=tableBean.Length>1?(tableBean.Substring(0,1).ToUpper()+tableBean.Substring(1).ToLower()):(tableBean.ToUpper());
DataTabledtt=this.GetTable("select*from["+Convert.ToString(dt.Rows[i]["name"])+"]");
System.Text.StringBuildersbshu=newStringBuilder("usingSystem;").Append(System.Environment.NewLine).Append("usingSystem.Collections.Generic;").Append(System.Environment.NewLine).Append("usingSystem.Text;").Append(System.Environment.NewLine).Append("usingSystem.Data;").Append(Environment.NewLine).Append("usingSystem.Data.SqlClient;").Append(System.Environment.NewLine).Append("").Append(System.Environment.NewLine).Append("namespace").Append(this.tbNamespace.Text.Trim()).Append(System.Environment.NewLine).Append("{").Append(System.Environment.NewLine);
System.Text.StringBuildersbset=newStringBuilder("");
System.Text.StringBuildersbbean=newStringBuilder("public"+tableBean+"SelectById(){"+System.Environment.NewLine+tableBean+""+tableBean.ToLower().ToString()+"=new"+tableBean+"();"+System.Environment.NewLine+"");
sbbean.Append("stringsql="select*from"+tableBean+"where"+dtt.Columns[0].ColumnName.ToString()+"=@"+dtt.Columns[0].ColumnName.ToString()+"";").Append(Environment.NewLine);
sbbean.Append("SqlParameter[]pas={newSqlParameter("").Append("@").Append(dtt.Columns[0].ColumnName.ToString()).Append(""").Append(",").Append(dtt.Columns[0].ColumnName.ToString()).Append(")};").Append(Environment.NewLine);
sbbean.Append("DataTabledt=db.GetTable(sql,pas);").Append(Environment.NewLine);
sbbean.Append("if(dt.Rows.Count>0)").Append(Environment.NewLine).Append("{").Append(Environment.NewLine);
//sql前半部分
StringBuildersbpas=newStringBuilder("SqlParameter[]pas={");
StringBuildersbadd=newStringBuilder("publicboolAdd()");
sbadd.Append("{");
sbadd.Append(Environment.NewLine);
sbshu.Append(Environment.NewLine);
sbshu.Append("publicclass");
sbshu.Append(tableBean);
sbshu.Append("{");
sbshu.Append(Environment.NewLine);
System.Text.StringBuildersbsqlbefore=newStringBuilder("insertinto").Append(tableBean).Append("(");
System.Text.StringBuildersbsqlafter=newStringBuilder("values(");
StringBuildersbupd=newStringBuilder("publicboolUpdate()"+Environment.NewLine+"{"+Environment.NewLine+"stringsql="update").Append(tableBean).Append("set");
StringBuildersbdel=newStringBuilder("publicboolDelete()").Append(Environment.NewLine).Append("{").Append("stringsql="delete").Append(tableBean).Append("where").Append("[").Append(dtt.Columns[0].ColumnName.ToString()).Append("]").Append("=").Append("@").Append(dtt.Columns[0].ColumnName.ToString()).Append("";").Append(Environment.NewLine);
StringBuildersbdelpas=newStringBuilder("SqlParameter[]pas={");
StringBuildersbsel=newStringBuilder("publicDataTableSelect()").Append(Environment.NewLine).Append("{").Append(Environment.NewLine).Append("DataTabledt=db.GetTable("select*from").Append(tableBean).Append("")??newDataTable();").Append(Environment.NewLine).Append("returndt;").Append(Environment.NewLine).Append("}");
//循环字段
for(intj=0;j<dtt.Columns.Count;j++)
{
sbshu.Append("privatestring_"+dtt.Columns[j].ColumnName.ToString()+";"+System.Environment.NewLine);
sbset.Append("publicstring"+dtt.Columns[j].ColumnName.ToString()+"{set{this._"+dtt.Columns[j].ColumnName.ToString()+"=value;}get{returnthis._"+dtt.Columns[j].ColumnName.ToString()+";}}"+System.Environment.NewLine);
sbbean.Append("").Append(tableBean.ToLower().ToString()+"."+dtt.Columns[j].ColumnName.ToString()+"=Convert.ToString(dt.Rows[0][""+dtt.Columns[j].ColumnName.ToString()+""]);").Append(System.Environment.NewLine);
if(j!=0)
{
sbsqlbefore.Append(",");
sbsqlafter.Append(",");
}
///添加
sbsqlbefore.Append("[").Append(dtt.Columns[j].ColumnName.ToString()).Append("]");
sbsqlafter.Append("@"+dtt.Columns[j].ColumnName.ToString());
sbpas.Append("newSqlParameter("");
sbpas.Append("@");
sbpas.Append(dtt.Columns[j].ColumnName.ToString());
sbpas.Append("",");
sbpas.Append(dtt.Columns[j].ColumnName.ToString());
sbpas.Append(")");
if(j<dtt.Columns.Count-1)
{
sbpas.Append(",");
}
///修改
if(j!=0)
{
sbupd.Append("[").Append(dtt.Columns[j].ColumnName.ToString()).Append("]").Append("=");
sbupd.Append("@");
sbupd.Append(dtt.Columns[j].ColumnName.ToString());
if(j<dtt.Columns.Count-1)
{
sbupd.Append(",");
}
}
}
sbpas.Append("};");
sbsqlbefore.Append(")");
sbsqlafter.Append(")");
///循环字段
sbadd.Append("stringsql="").Append(sbsqlbefore.ToString()).Append(sbsqlafter.ToString()).Append(""").Append(";").Append(Environment.NewLine);
sbadd.Append(sbpas.ToString()).Append(Environment.NewLine);
sbadd.Append("returndb.GetState(sql,pas);").Append(Environment.NewLine);
sbadd.Append("}").Append(Environment.NewLine);
//添加结束
///修改
sbupd.Append("where");
sbupd.Append(dtt.Columns[0].ColumnName.ToString());
sbupd.Append("=");
sbupd.Append("@");
sbupd.Append(dtt.Columns[0].ColumnName.ToString()).Append("";").Append(Environment.NewLine);
sbupd.Append(sbpas).Append(Environment.NewLine);
sbupd.Append("returndb.GetState(sql,pas);").Append(Environment.NewLine);
sbupd.Append("}").Append(Environment.NewLine);
///删除
sbdelpas.Append("newSqlParameter("").Append("@").Append(dtt.Columns[0].ColumnName.ToString()).Append(""").Append(",").Append(dtt.Columns[0].ColumnName.ToString()).Append(")};");
sbdel.Append(sbdelpas.ToString()).Append(Environment.NewLine);
sbdel.Append("returndb.GetState(sql,pas);").Append(Environment.NewLine).Append("}");
//查询
sbshu.Append(sbset.ToString()).Append(System.Environment.NewLine).Append("DbAccessdb=newDbAccess();").Append(Environment.NewLine).Append(sbadd.ToString()).Append(Environment.NewLine).Append(sbupd.ToString()).Append(Environment.NewLine).Append(sbdel.ToString()).Append(Environment.NewLine).Append(sbsel.ToString()).Append(Environment.NewLine).Append("//查询").Append(System.Environment.NewLine).Append(sbbean.Append(System.Environment.NewLine).Append("}").Append(Environment.NewLine).Append("return"+tableBean.ToLower().ToString()+";"+System.Environment.NewLine+"}").ToString());
///
sbshu.Append(System.Environment.NewLine);
sbshu.Append(System.Environment.NewLine).Append("}").Append(System.Environment.NewLine).Append("}");
this.richTextBox1.Text=sbshu.ToString();
using(System.IO.StreamWritersw=newSystem.IO.StreamWriter(this.filepath+"\"+tableBean+".cs",false,System.Text.Encoding.GetEncoding("gb2312")))
{
sw.Write(sbshu.ToString());
sw.Flush();
}
this.richTextBox1.Text=sbshu.ToString();
}
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
this.folderBrowserDialog1.ShowDialog();
this.filepath=this.folderBrowserDialog1.SelectedPath.ToString();
this.model=this.filepath.Substring(this.filepath.LastIndexOf("\")+1);
MessageBox.Show(this.model);
MessageBox.Show(this.filepath);
}
stringall="";
publicvoidShowAll(stringdir)
{
System.IO.DirectoryInfodi=newSystem.IO.DirectoryInfo(dir);
if(di.GetFiles().Length>0)
{
System.IO.FileInfo[]files=di.GetFiles();
for(inti=0;i<files.Length;i++)
all+="\n"+files[i].FullName.Trim()+"end\n";
}
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
this.folderBrowserDialog2.ShowDialog();
this.dir=this.folderBrowserDialog2.SelectedPath;
this.ShowAll(dir);
//MessageBox.Show(GetTable("select*fromtitles").Rows[0]["test"].ToString());
}
分享到:
相关推荐
"C#简单三层结构代码生成器"就是这样一个工具,它可以自动生成这三层架构中的关键组件,包括.Model、BLL和DAL,极大地提高了开发效率。 首先,我们来看.Model层。Model层代表了应用程序的数据模型,通常包含实体类...
6. **单元测试**:生成针对自动生成代码的单元测试,以确保代码正确无误。 7. **版本控制集成**:与Git等版本控制系统兼容,便于团队协作和版本管理。 8. **文档生成**: Codematic 还可能提供API文档或代码注释的...
它通过预定义的模板或用户自定义的规则,可以快速地生成如数据访问层(DAL)、模型(Model)等常见代码段,减少了手动编写这些基础结构的时间。 .NET Framework 4.0是微软推出的一个全面的开发框架,它包含了用于...
在本实例代码中,我们探讨的是一个基于C#的ASP.NET MVC框架,结合Dapper.net实现的三层架构项目。这是一个完整的、可运行的解决方案,包含了数据访问层(DAL)、业务逻辑层(BLL)和表示层(UI)的划分,以及Dapper...
- **测试**:确保生成的代码符合预期,可以编写单元测试验证代码质量。 7. **总结** T4模板是强大的代码生成工具,尤其适用于需要大量重复编写相似代码的场合。通过学习和熟练掌握T4模板,开发者可以更高效地维护...
在实际应用中,代码生成器可能支持多种编程语言,例如Java、Python、C#等,并且能够生成各种类型的代码,包括但不限于: 1. 数据访问层(DAO):根据数据库模式自动生成数据操作的代码。 2. 表现层(View):为Web...
3. **NHapi.Model.V25、NHapi.Model.V23、NHapi.Model.V231、NHapi.Model.V24、NHapi.Model.V22**:这些文件夹代表了 NHapi 对不同版本的 HL7 消息结构的支持。每个版本的模型都封装了对应 HL7 规范的类和接口,使得...
在这个案例中,该工具专注于生成C#项目的模型(Model)、数据访问层(DAL)以及接口数据访问层(IDAL)的代码。这些组件是构建数据库驱动应用程序的基础。 1. **C# Model**:在C#中,Model通常代表业务对象或数据...
目前只能生成Model类和简单的存储过程。 由于是一个人编写的,开发经验不足,特别是对于测试这块. 生成的文件以三层架构为主. 采用VS2005 (C# )开发 生成文件采用从摸板文件(Templet文件夹)读取后...
MVC(Model-View-Controller)模式使得视图、模型和控制器之间职责分明,便于代码管理和测试。 2. **业务逻辑层(Business Logic Layer)**:这一层负责处理应用程序的核心业务规则和流程。在采购系统中,这可能...
"OK语言代码生成工具"是一款高效实用的软件开发辅助工具,专为提升C#和Java项目的开发效率而设计。在IT行业中,代码生成工具扮演着重要角色,它们能够自动生成大量重复性的基础代码,使开发者得以专注于核心业务逻辑...
此外,还可以利用MVVM(Model-View-ViewModel)设计模式,将业务逻辑与视图分离,提高代码的可维护性和复用性。 为了构建一个完整的大屏看板,我们需要以下步骤: 1. **数据采集**:通过MODBUS TCP协议连接到工控...
5. **验证和测试**:生成XML文件后,为了确保其符合预期的结构和内容,通常需要进行验证。这可以通过使用XML Schema(XSD)或DTD(Document Type Definition)来实现,它们定义了XML文件的结构和约束。 在实际项目...
然后,通过C#代码调用接口,生成预支付订单,跳转到微信或支付宝的支付页面,最后处理支付结果通知,确保交易的完整性和安全性。同时,为了提高用户体验,开发者还需要处理异常情况,如网络故障、支付失败等,提供...
在提供的源代码中,"activexTest2"可能是一个包含C#类库项目的工程文件,这个项目负责生成ActiveX控件。开发者可能会在这里定义类,继承自System.Windows.Forms.Control或其他适当的基类,然后添加处理视频播放功能...
在本文中,我们将深入探讨如何使用C#编程语言与Windows Presentation Foundation(WPF)框架创建一个密码生成工具。这个工具的目的是为特定的"Application Name"生成安全的、随机的密码。通过理解以下知识点,你可以...
【标题】"SNS内部测试版_C#论坛社区程序.rar" 涉及的主要知识点是C#编程语言在开发社交网络平台(SNS)中的应用,以及如何构建一个论坛社区系统。C#是一种由微软公司推出的面向对象的编程语言,广泛应用于Windows...
2. **生成Interop DLL:**Visual Studio会自动为你生成一个Interop DLL(如:My_ocx.dll),它是.NET与非托管代码(C++ OCX控件)之间的桥梁。 3. **使用控件:**在C#代码中,你可以像使用其他.NET控件一样实例化...
4. MVP模式(Model-View-Presenter):为了提高代码可维护性和可测试性,开发中可能会采用MVP模式。模型层负责业务逻辑,视图层显示数据,而呈现者作为两者之间的桥梁,处理用户输入并更新视图。 5. LINQ(Language...