Click here to Skip to main content
15,898,134 members
Home / Discussions / C#
   

C#

 
GeneralRe: Exception handling problem.. Pin
Dave Kreskowiak23-Apr-05 17:31
mveDave Kreskowiak23-Apr-05 17:31 
GeneralRe: Exception handling problem.. Pin
Colin Angus Mackay23-Apr-05 22:48
Colin Angus Mackay23-Apr-05 22:48 
GeneralRe: Exception handling problem.. Pin
Tugbay Sahin24-Apr-05 7:15
Tugbay Sahin24-Apr-05 7:15 
GeneralRe: Exception handling problem.. Pin
Colin Angus Mackay24-Apr-05 13:05
Colin Angus Mackay24-Apr-05 13:05 
GeneralRe: Exception handling problem.. Pin
Dave Kreskowiak24-Apr-05 16:22
mveDave Kreskowiak24-Apr-05 16:22 
GeneralRe: Exception handling problem.. Pin
Tugbay Sahin24-Apr-05 19:54
Tugbay Sahin24-Apr-05 19:54 
GeneralCreate a class an object dinamically with DataRow fields and values Pin
machocr23-Apr-05 13:18
machocr23-Apr-05 13:18 
GeneralRe: Create a class an object dinamically with DataRow fields and values Pin
machocr23-Apr-05 20:19
machocr23-Apr-05 20:19 
I find the way: OMG | :OMG:

<br />
		private string CreaClase(System.Data.DataRow row)<br />
		{<br />
			string codigo = @"<br />
using System;<br />
using System.Data;<br />
<br />
namespace miNamespace {<br />
public class miClase {<br />
<br />
	public miClase(System.Data.DataRow row)<br />
	{<br />
		m_Row = row;<br />
";<br />
			foreach(System.Data.DataColumn col in row.Table.Columns)<br />
			{<br />
				codigo += "\t\tif(row[\"" + col.ColumnName + "\"] != DBNull.Value)\n";<br />
				codigo += "\t\t{\n";<br />
				codigo += "\t\t\tthis." + col.ColumnName + " = (" + col.DataType.UnderlyingSystemType.ToString() + ")row[\"" + col.ColumnName + "\"];\n";<br />
				codigo += "\t\t}\n";<br />
			}<br />
	codigo += "}\n";<br />
			foreach(System.Data.DataColumn col in row.Table.Columns)<br />
			{<br />
				string campo = col.DataType.UnderlyingSystemType.ToString() + " m_" + col.ColumnName;<br />
				string propiedad = col.DataType.UnderlyingSystemType.ToString() + " " + col.ColumnName;<br />
				codigo +=  "private " + campo  + ";\n";<br />
				codigo += @"<br />
	public " + propiedad + @"<br />
	{<br />
		get { return m_" + col.ColumnName + @"; }<br />
		set { <br />
				m_" + col.ColumnName + @" = value;";<br />
				codigo += "m_Row[\"" + col.ColumnName + "\"] = value;";<br />
				codigo += @"<br />
			}<br />
	}<br />
<br />
	";<br />
			}<br />
<br />
			codigo += @"<br />
	private System.Data.DataRow m_Row;<br />
	public System.Data.DataRow miMethod()<br />
	{<br />
		return m_Row;<br />
	}<br />
<br />
";<br />
			codigo +="}    }";<br />
<br />
			return codigo;<br />
		}<br />
<br />
		private void CreaObjeto(string codigo)<br />
		{<br />
			ICodeCompiler compilador = new CSharpCodeProvider().CreateCompiler();<br />
			CompilerParameters parametros = new CompilerParameters();<br />
<br />
			parametros.ReferencedAssemblies.Add("System.dll");<br />
			parametros.ReferencedAssemblies.Add("System.Data.dll");<br />
<br />
			parametros.GenerateInMemory = true;<br />
			<br />
			CompilerResults compilado = compilador.CompileAssemblyFromSource(parametros,codigo);<br />
<br />
			if (compilado.Errors.HasErrors) <br />
			{<br />
				string mensaje = "";<br />
<br />
				mensaje = compilado.Errors.Count.ToString() + " Errores:";<br />
				for (int x=0;x<compilado.Errors.Count;x++) <br />
					mensaje = mensaje  + "\r\nLine: " + compilado.Errors[x].Line.ToString() + " - " + <br />
						compilado.Errors[x].ErrorText;		<br />
<br />
				MessageBox.Show(mensaje + "\r\n\r\n" + codigo,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error);<br />
<br />
				return;<br />
			}<br />
<br />
			Assembly ensambaldo = compilado.CompiledAssembly;<br />
<br />
			this.Objeto  = ensambaldo.CreateInstance("miNamespace.miClase",true,BindingFlags.CreateInstance,null,new object[]{this.DS.Tables[0].Rows[0]},System.Globalization.CultureInfo.CurrentCulture,null);<br />
			if (this.Objeto == null) <br />
			{<br />
				MessageBox.Show("No se pudo cargar la clase!.");<br />
				return;<br />
			}<br />
		}<br />
				private void frmParametro_Load(object sender, System.EventArgs e)<br />
		{<br />
			CreaObjeto(CreaClase(this.DS.Tables[0].Rows[0]));<br />
			this.propertyGrid1.SelectedObject = this.Objeto;<br />
		}<br />


La realidad no es más que impulsos eléctricos del cerebro - Morpheus
GeneralPocket PC mulitplayer Pin
Anonymous23-Apr-05 13:12
Anonymous23-Apr-05 13:12 
QuestionAssembly version? Pin
damir_tk23-Apr-05 13:11
damir_tk23-Apr-05 13:11 
AnswerRe: Assembly version? Pin
turbochimp23-Apr-05 17:29
turbochimp23-Apr-05 17:29 
GeneralRe: Assembly version? Pin
damir_tk23-Apr-05 23:24
damir_tk23-Apr-05 23:24 
GeneralRe: Assembly version? Pin
leppie24-Apr-05 4:40
leppie24-Apr-05 4:40 
GeneralRe: Assembly version? Pin
turbochimp24-Apr-05 7:10
turbochimp24-Apr-05 7:10 
GeneralRe: Assembly version? Pin
damir_tk24-Apr-05 8:12
damir_tk24-Apr-05 8:12 
Questionupdate problems? Pin
Snowjim23-Apr-05 13:04
Snowjim23-Apr-05 13:04 
GeneralReading nodes from an XML file please help! Pin
Anonymous23-Apr-05 12:41
Anonymous23-Apr-05 12:41 
GeneralRe: Reading nodes from an XML file please help! Pin
DavidNohejl23-Apr-05 12:59
DavidNohejl23-Apr-05 12:59 
GeneralAddContextMenuItem multiple files Pin
Clickok23-Apr-05 12:32
Clickok23-Apr-05 12:32 
GeneralRe: AddContextMenuItem multiple files Pin
MilesAhead23-Apr-05 16:43
MilesAhead23-Apr-05 16:43 
GeneralItem reordering in a large icon ListView Pin
Anonymous23-Apr-05 11:57
Anonymous23-Apr-05 11:57 
GeneralRe: Item reordering in a large icon ListView Pin
Anonymous24-Apr-05 11:03
Anonymous24-Apr-05 11:03 
GeneralEnableVisualStyles() crashes my app! Pin
Anonymous23-Apr-05 10:51
Anonymous23-Apr-05 10:51 
GeneralRe: EnableVisualStyles() crashes my app! Pin
DavidNohejl23-Apr-05 11:08
DavidNohejl23-Apr-05 11:08 
GeneralRe: EnableVisualStyles() crashes my app! Pin
Anonymous23-Apr-05 11:45
Anonymous23-Apr-05 11:45 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.