He extraído datos de la base de datos en una tabla de datos. Y ahora quiero agregar datos de esta tabla de datos a un archivo resx. He creado un archivo resx y una tabla de datos como esta.
class LoadData { public static void main(string[] args) { string FilePath=@"C:\" DataTable dt = new DataTable(); using(ResXResourceWriter rxrw = new ResXResourceWriter(FilePath+"Demo.resx")) { SqlConnection conn=new SqlConnection(); conn.ConnectionString="my connection string here"; SqlCommand cmd= new SqlCommand("my sql command here",conn); conn.Open(); SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(dt); conn.Close; da.Dispose(); } } }Entonces, ¿cómo puedo cargar datos de datatable dt en el archivo Demo.resx?
Puedes hacer algo como
public class Example { public static void Main() { // Instantiate an Automobile object. Automobile car1 = new Automobile("Ford", "Model N", 1906, 0, 4); Automobile car2 = new Automobile("Ford", "Model T", 1909, 2, 4); // Define a resource file named CarResources.resx. using (ResXResourceWriter resx = new ResXResourceWriter(@".\CarResources.resx")) { resx.AddResource("Title", "Classic American Cars"); resx.AddResource("HeaderString1", "Make"); resx.AddResource("HeaderString2", "Model"); resx.AddResource("HeaderString3", "Year"); resx.AddResource("HeaderString4", "Doors"); resx.AddResource("HeaderString5", "Cylinders"); resx.AddResource("Information", SystemIcons.Information); resx.AddResource("EarlyAuto1", car1); resx.AddResource("EarlyAuto2", car2); } }Consulte https://docs.microsoft.com/en-us/dotnet/framework/resources/working-with-resx-files-programmatically
Esta respuesta no es una respuesta a su pregunta, sino una posible solución a lo que entendí que está buscando (incrustar un DataTable en un ensamblaje).
El DataTable podría transformarse a XML:
dt.WriteXml(@"c:\myDataTable.xml");Arrastre y suelte este archivo xml en su proyecto en la ubicación deseada. (por ejemplo, directorio de recursos)
Haga clic con el botón derecho en él y seleccione "Recurso incrustado" como acción de compilación.
Ahora está disponible en su código con este método:
public DataTable XmlToDataTable(string resourceName = "myDataTable.xml") { DataSet ds = new DataSet(); using (System.IO.Stream input = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("MyProject.Resources." + resourceName)) { try { ds.ReadXml(input); } catch (Exception ex) { MessageBox.Show(ex.Message); return null; } } return ds.Table[0]; }