`

c# 生成model 层代码 测试版

阅读更多
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#简单三层结构代码生成器

    "C#简单三层结构代码生成器"就是这样一个工具,它可以自动生成这三层架构中的关键组件,包括.Model、BLL和DAL,极大地提高了开发效率。 首先,我们来看.Model层。Model层代表了应用程序的数据模型,通常包含实体类...

    Codematic c#代码自动生成器

    6. **单元测试**:生成针对自动生成代码的单元测试,以确保代码正确无误。 7. **版本控制集成**:与Git等版本控制系统兼容,便于团队协作和版本管理。 8. **文档生成**: Codematic 还可能提供API文档或代码注释的...

    C#代码生成器

    它通过预定义的模板或用户自定义的规则,可以快速地生成如数据访问层(DAL)、模型(Model)等常见代码段,减少了手动编写这些基础结构的时间。 .NET Framework 4.0是微软推出的一个全面的开发框架,它包含了用于...

    MVC+三层+DapperNet实例代码完整版

    在本实例代码中,我们探讨的是一个基于C#的ASP.NET MVC框架,结合Dapper.net实现的三层架构项目。这是一个完整的、可运行的解决方案,包含了数据访问层(DAL)、业务逻辑层(BLL)和表示层(UI)的划分,以及Dapper...

    T4模板来生成代码

    - **测试**:确保生成的代码符合预期,可以编写单元测试验证代码质量。 7. **总结** T4模板是强大的代码生成工具,尤其适用于需要大量重复编写相似代码的场合。通过学习和熟练掌握T4模板,开发者可以更高效地维护...

    代码生成器

    在实际应用中,代码生成器可能支持多种编程语言,例如Java、Python、C#等,并且能够生成各种类型的代码,包括但不限于: 1. 数据访问层(DAO):根据数据库模式自动生成数据操作的代码。 2. 表现层(View):为Web...

    NHapi20最新源码,可使用C#解析HL7数据

    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通常代表业务对象或数据...

    简单的代码生成器0.2

    目前只能生成Model类和简单的存储过程。 由于是一个人编写的,开发经验不足,特别是对于测试这块. 生成的文件以三层架构为主. 采用VS2005 (C# )开发 生成文件采用从摸板文件(Templet文件夹)读取后...

    C# 采购系统 三层实例

    MVC(Model-View-Controller)模式使得视图、模型和控制器之间职责分明,便于代码管理和测试。 2. **业务逻辑层(Business Logic Layer)**:这一层负责处理应用程序的核心业务规则和流程。在采购系统中,这可能...

    OK语言代码生成工具

    "OK语言代码生成工具"是一款高效实用的软件开发辅助工具,专为提升C#和Java项目的开发效率而设计。在IT行业中,代码生成工具扮演着重要角色,它们能够自动生成大量重复性的基础代码,使开发者得以专注于核心业务逻辑...

    C# WPF,物联网工控大数据大屏看板,源代码,支持MODBUSTCP协议

    此外,还可以利用MVVM(Model-View-ViewModel)设计模式,将业务逻辑与视图分离,提高代码的可维护性和复用性。 为了构建一个完整的大屏看板,我们需要以下步骤: 1. **数据采集**:通过MODBUS TCP协议连接到工控...

    根据XML模版自动生成

    5. **验证和测试**:生成XML文件后,为了确保其符合预期的结构和内容,通常需要进行验证。这可以通过使用XML Schema(XSD)或DTD(Document Type Definition)来实现,它们定义了XML文件的结构和约束。 在实际项目...

    c#微信支付宝支付MVC版(测试已用).rar

    然后,通过C#代码调用接口,生成预支付订单,跳转到微信或支付宝的支付页面,最后处理支付结果通知,确保交易的完整性和安全性。同时,为了提高用户体验,开发者还需要处理异常情况,如网络故障、支付失败等,提供...

    C#视频插件制作,含源代码

    在提供的源代码中,"activexTest2"可能是一个包含C#类库项目的工程文件,这个项目负责生成ActiveX控件。开发者可能会在这里定义类,继承自System.Windows.Forms.Control或其他适当的基类,然后添加处理视频播放功能...

    C#-WPF-密码生成Tool

    在本文中,我们将深入探讨如何使用C#编程语言与Windows Presentation Foundation(WPF)框架创建一个密码生成工具。这个工具的目的是为特定的"Application Name"生成安全的、随机的密码。通过理解以下知识点,你可以...

    SNS内部测试版_C#论坛社区程序.rar

    【标题】"SNS内部测试版_C#论坛社区程序.rar" 涉及的主要知识点是C#编程语言在开发社交网络平台(SNS)中的应用,以及如何构建一个论坛社区系统。C#是一种由微软公司推出的面向对象的编程语言,广泛应用于Windows...

    c#调用c++ocx控件的详细代码

    2. **生成Interop DLL:**Visual Studio会自动为你生成一个Interop DLL(如:My_ocx.dll),它是.NET与非托管代码(C++ OCX控件)之间的桥梁。 3. **使用控件:**在C#代码中,你可以像使用其他.NET控件一样实例化...

    进销存管理系统实例程序(c#源代码)

    4. MVP模式(Model-View-Presenter):为了提高代码可维护性和可测试性,开发中可能会采用MVP模式。模型层负责业务逻辑,视图层显示数据,而呈现者作为两者之间的桥梁,处理用户输入并更新视图。 5. LINQ(Language...

Global site tag (gtag.js) - Google Analytics