c# 動態生成DLL文件出錯.請各們幫看看以下代碼!
#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