#region 生成公式DLL文件在(FormulasFile)里
/// <summary>
/// 生成公式DLL文件在(FormulasFile)里
/// </summary>
/// <param name="ClassName">類名</param>
public string Creadll(string ClassName)
{
string ft = "";
try
{
CSharpCodeProvider CSPC=new CSharpCodeProvider();
// ICodeCompiler complier = CSPC.CreateCompiler();
;
//
CompilerParameters CPS = new CompilerParameters();
CPS.GenerateExecutable = false;
CPS.GenerateInMemory = false;
CPS.OutputAssembly = "ANA.dll";
CPS.IncludeDebugInformation = false; CPS.ReferencedAssemblies.Add("System.dll");
CPS.ReferencedAssemblies.Add("System.Data.dll");
StringBuilder valu = Creaforu(sql_table, formu_table, NAME, accment);
Connectiondata(sql_table, accment);
StringBuilder DLLSB = new StringBuilder();
DLLSB.Append("using System;\r\n");
DLLSB.Append("using System.Data;\r\n");
DLLSB.Append("using System.Data.SqlClient;\r\n");
DLLSB.Append("namespace GenClass\r\n");
DLLSB.Append("{\r\n");
string sqlst="Data Source=.\\SQLEXPRESS;AttachDbFilename=E:\\TEST\\dgsweda.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
DLLSB.Append(" public class " + ClassName + "\r\n");
DLLSB.Append(" {\r\n");
DLLSB.Append(" private static string sqlconstring=@\"" + sqlst + "\";\r\n");
DLLSB.Append(" private SqlConnection getcon()\r\n");
DLLSB.Append(" {\r\n");
DLLSB.Append(" SqlConnection con = new SqlConnection(sqlconstring);\r\n");
DLLSB.Append(" return con;\r\n");
DLLSB.Append(" }\r\n");
DLLSB.Append(" public DataTable Datatable(string sqlstirng)\r\n");
DLLSB.Append(" {\r\n");
DLLSB.Append(" SqlConnection con = getcon();\r\n");
DLLSB.Append(" SqlDataAdapter ada = new SqlDataAdapter(sqlstirng, con);\r\n");
DLLSB.Append(" DataTable da = new DataTable();\r\n");
DLLSB.Append(" ada.Fill(da);\r\n");
DLLSB.Append(" return da;\r\n");
DLLSB.Append(" }\r\n");
DLLSB.Append(" private string HID;\r\n");
DLLSB.Append(" public " + ClassName + "(string _HID)\r\n");
DLLSB.Append(" {\r\n");
DLLSB.Append(" HID = _HID;\r\n");
DLLSB.Append(" }\r\n");
DLLSB.Append(STB.ToString() + "\r\n");
DLLSB.Append(valu.ToString() + "\r\n");
DLLSB.Append(" }\r\n");
DLLSB.Append("}\r\n");
CompilerResults RESU = complier.CompileAssemblyFromSource(CPS, DLLSB.ToString());
DLLSB = null;
}
catch (Exception me)
{ MessageBox.Show(me.Message); }
return ft;
} #endregion
/// <summary>
/// 生成公式DLL文件在(FormulasFile)里
/// </summary>
/// <param name="ClassName">類名</param>
public string Creadll(string ClassName)
{
string ft = "";
try
{
CSharpCodeProvider CSPC=new CSharpCodeProvider();
// ICodeCompiler complier = CSPC.CreateCompiler();
;
//
CompilerParameters CPS = new CompilerParameters();
CPS.GenerateExecutable = false;
CPS.GenerateInMemory = false;
CPS.OutputAssembly = "ANA.dll";
CPS.IncludeDebugInformation = false; CPS.ReferencedAssemblies.Add("System.dll");
CPS.ReferencedAssemblies.Add("System.Data.dll");
StringBuilder valu = Creaforu(sql_table, formu_table, NAME, accment);
Connectiondata(sql_table, accment);
StringBuilder DLLSB = new StringBuilder();
DLLSB.Append("using System;\r\n");
DLLSB.Append("using System.Data;\r\n");
DLLSB.Append("using System.Data.SqlClient;\r\n");
DLLSB.Append("namespace GenClass\r\n");
DLLSB.Append("{\r\n");
string sqlst="Data Source=.\\SQLEXPRESS;AttachDbFilename=E:\\TEST\\dgsweda.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
DLLSB.Append(" public class " + ClassName + "\r\n");
DLLSB.Append(" {\r\n");
DLLSB.Append(" private static string sqlconstring=@\"" + sqlst + "\";\r\n");
DLLSB.Append(" private SqlConnection getcon()\r\n");
DLLSB.Append(" {\r\n");
DLLSB.Append(" SqlConnection con = new SqlConnection(sqlconstring);\r\n");
DLLSB.Append(" return con;\r\n");
DLLSB.Append(" }\r\n");
DLLSB.Append(" public DataTable Datatable(string sqlstirng)\r\n");
DLLSB.Append(" {\r\n");
DLLSB.Append(" SqlConnection con = getcon();\r\n");
DLLSB.Append(" SqlDataAdapter ada = new SqlDataAdapter(sqlstirng, con);\r\n");
DLLSB.Append(" DataTable da = new DataTable();\r\n");
DLLSB.Append(" ada.Fill(da);\r\n");
DLLSB.Append(" return da;\r\n");
DLLSB.Append(" }\r\n");
DLLSB.Append(" private string HID;\r\n");
DLLSB.Append(" public " + ClassName + "(string _HID)\r\n");
DLLSB.Append(" {\r\n");
DLLSB.Append(" HID = _HID;\r\n");
DLLSB.Append(" }\r\n");
DLLSB.Append(STB.ToString() + "\r\n");
DLLSB.Append(valu.ToString() + "\r\n");
DLLSB.Append(" }\r\n");
DLLSB.Append("}\r\n");
CompilerResults RESU = complier.CompileAssemblyFromSource(CPS, DLLSB.ToString());
DLLSB = null;
}
catch (Exception me)
{ MessageBox.Show(me.Message); }
return ft;
} #endregion
{
private static string sqlconstring = @"Data Source=.\SQLEXPRESS;AttachDbFilename=E:\TEST\dgsweda.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
private SqlConnection getcon()
{
SqlConnection con = new SqlConnection(sqlconstring);
return con;
}
public DataTable Datatable(string sqlstirng)
{
SqlConnection con = getcon();
SqlDataAdapter ada = new SqlDataAdapter(sqlstirng, con);
DataTable da = new DataTable();
ada.Fill(da);
return da;
}
private string HID; public xxxxx(string _HID)
{
HID = _HID;
}
private int _应出勤()
{
int redata = 0; DataTable da = Datatable("select * from PER where HID='" + HID + "'");
for (int i = 0; i < da.Rows.Count; i++)
{
redata = int.Parse(da.Rows[i]["PER01"].ToString().Trim());
}
return redata;
}
private int 应出勤
{
get { return _应出勤(); }
} public int _全勤奖()
{
int retype = 0; if (应出勤 == 22)
retype = int.Parse("20");
else
retype = int.Parse("60"); return retype;
}
private int 全勤奖
{
get { return _全勤奖(); }
} }这是我用编译生成的代码!!!是可以运行的
你只生成一个源码的文件,没有添加项目引用,可能会导致无法编译。
系统提示,无法找到"ANA.dll"所依赖的文件!!
CPS.ReferencedAssemblies.Add("System.Xml.dll");建议二,把using放入namespace里面去 DLLSB.Append("namespace GenClass\r\n");
DLLSB.Append("{\r\n");
DLLSB.Append("using System;\r\n");
DLLSB.Append("using System.Data;\r\n");
DLLSB.Append("using System.Data.SqlClient;\r\n");
试试吧,祝你好运!